Web服务器——Apache相关内容详解

1.相关名词介绍

1)什么是Web服务器?

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档, 也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache 、Nginx、 IIS。

2)什么是Apache?

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它可以运行在几乎所有广泛使用的计算机平台上。

3)Apache与Httpd的区别是什么?

httpd是Apache超文本传输协议(HTTP)服务器的主程序。在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。

4)WWW、HTTP、HTTPS、HTML分别是什么?

WWW:WWW是环球信息网的缩写,(亦作“Web”、“WWW”、“‘W3’”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为Web。 分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。

HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。

HTTPS:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

在这里插入图片描述

HTML:超文本标记语言(HyperText Markup Language )。网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。

5)http与https的区别是什么?

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2.apache的安装部署

1)安装

yum install httpd -y            ##apache软件
yum install httpd-manual        ##apache的手册

在这里插入图片描述

systemctl start httpd           ##开启http服务
systemctl enable httpd      	##开机自启http服务

在这里插入图片描述

firewall-cmd --permanent --add-service=http   ##永久允许http   
firewall-cmd --reload            ##火墙重新加载策略                  
firewall-cmd --list-all         ##列出火墙信息

在这里插入图片描述

测试:

打开网页输入本机IP/manual,如:172.25.6.106/manual
在这里插入图片描述

3.Apache服务器基础信息

1)

基础配置信息
主配置目录/etc/httpd/conf
主配置文件/etc/httpd/conf/httpd.conf
子配置目录/etc/httpd/conf.d
子配置文件/etc/httpd/conf.d/.conf
默认发布目录/var/www/html
默认发布文件index.html
默认端口80
默认安全上下文httpd_sys_content.conf
程序开启默认用户apache
apache日志/etc/httpd/logs/ ##access_log访问目录,error_log报错日志

在这里插入图片描述
2)修改默认端口

vim /etc/httpd/conf/httpd.conf
Listen  8080    			##默认修改端口为8080
systemctl restart httpd			##重启服务

在这里插入图片描述

firewall-cmd   --permanent  --add-port=8080/tcp ##在火墙开启端口
firewall-cmd  --reload  

在这里插入图片描述

测试:

cd /var/www/html/
vim index.html						##默认发布文件的文件名唯一,只能这么写;自定义的发布文件名称可以随便写
systemctl restart httpd.service

在这里插入图片描述

恢复默认端口
在这里插入图片描述

【ctrl+shift+delete】清理浏览器缓存,刷新
在这里插入图片描述
在这里插入图片描述

3)修改默认发布文件——此时端口为默认端口80

随意书写一个要在网页上发布的文件:

cd /var/www/html
vim snow	

书写内容的格式这里不做过的探究,这属于Web前端开发的知识,作者目前只研究了linux运维方面的技术
在这里插入图片描述
在这里插入图片描述
测试:

显示为默认发布文件【index.html】内容
在这里插入图片描述

修改方式

vim /etc/httpd/conf/httpd.conf
DirectoryIndex snow  index.html ##修改默认发布文件,先读取文件snow

在这里插入图片描述

systemctl restart httpd		##重启服务

在这里插入图片描述

4)修改默认发布目录

<1>建立目录

mkdir /westos/html -p
cd /westos/html/
vim index.html    ##建立发布文件

在这里插入图片描述

<2>修改主配置文件

vim /etc/httpd/conf/httpd.conf		##121行到123行是自行添加的
systemctl  restart httpd

在这里插入图片描述
<3>如果此时SElinux的状态为【Enforcing】,需要修改目录的安全上下文

semanage fcontext -a -t httpd_sys_content_t '/westos/html(/.*)?'##加入安全上下文列表,否则selinux影响将无法发布 
restorecon -FvvR /westos/html/ ##刷新列表 
systemctl restart httpd

在这里插入图片描述
测试:打开网页输入本机IP

在这里插入图片描述
实验完成后恢复环境

4.apached的虚拟发布

1)建立虚拟发布目录

mkdir /var/www/virtual/westos.com/news -p			 ##建立虚拟发布目录
mkdir /var/www/virtual/westos.com/music -p 
ls -Zd /var/www/virtual/westos.com/news				 ##查看安全上下文是否一致

在这里插入图片描述
2)书写发布文件

vim /var/www/virtual/westos.com/news/index.html

在这里插入图片描述
vim /var/www/virtual/westos.com/music/index.html
在这里插入图片描述

3)修改子配置目录内容

cd /etc/httpd/conf.d
vim adefault.conf

<VirtualHost _default_:80>			##默认站点发布端口
	DocumentRoot "/var/www/html"	##默认站点发布目录
</VirtualHost>

在这里插入图片描述

vim news.conf								##编写指定站点发布配置文件
<VirtualHost *:80>							##发布端口
	ServerName "news.westos.com"			##指定站点名称
	Customlog logs/news log.combined		##站点日志combined混合日志
	DocumentRoot "/var/www/virtual/westos.com/news"		##默认发布目录
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news">
	Require all granted						##授权
</Directory>

在这里插入图片描述

vim music.conf
<VirtualHost *:80>
	ServerName "music.westos.com"
	Customlog logs/news log.combined
	DocumentRoot "/var/www/virtual/westos.com/music"
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music">
	Require all granted
</Directory>

在这里插入图片描述

systemctl restart httpd.service		##重启服务

4)选另一台主机作为客户端,并对客户端的主机进行本地解析

vim /etc/hosts

在这里插入图片描述
5)测试:在客户端的浏览器中分别输入上面的网址

在这里插入图片描述
在这里插入图片描述

5.apache内部的访问控制

1)针对与主机的访问控制(基于ip)

在/var/www/html/下建立新文件text,自定义内容:
在这里插入图片描述

vim /etc/httpd/conf.d/adefault.conf			

列表读取顺序——后读取的列表会覆盖先读取内容的重复部分
在这里插入图片描述
2)在IP为172.25.6.106与172.25.6.250的主机上进行测试,测试前先清除浏览器的缓存

在172.25.6.106上测试结果如下:
在这里插入图片描述

在172.25.6.250上测试结果如下:
在这里插入图片描述

2)用户的访问控制(基于用户)

建立用户及密钥,-c:创建密码文件(如果文件已经存在了,那么-c会清空原始文件,然后重新创建),-m:用md5加密数据

htpasswd  -cm     /etc/httpd/userpass      admin
htpasswd   -m      /etc/httpd/userpass      admin1

在这里插入图片描述

vim /etc/httpd/conf.d/adefault.conf

在这里插入图片描述
在这里插入图片描述

测试:

在另一台主机的浏览器中访问:172.25.6.106/text
在这里插入图片描述
在这里插入图片描述

6.apache支持的语言

1)html

html:超文本标记语言(HyperText Markup Language )。我们在上面做实验用到的就是html(如:默认发布文件名为index.html)

2)php

yum  install php -y
systemctl  restart  httpd
vim /var/www/html/index.php
<?php
phpinfo();
?>

在这里插入图片描述
测试:
在这里插入图片描述

3)cgi

mkdir -p  /var/www/html/cgi
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'  ##设置安全上下文
restorecon  -RvvF  /var/www/html/cgi

在这里插入图片描述

vim /var/www/html/cgi/index.cgi

在这里插入图片描述

chmod +x /var/www/html/cgi/index.cgi     ##给脚本加上可执行的权限
./index.cgi                              ##执行脚本

在这里插入图片描述

vim /etc/httpd/conf.d/adefault.conf

<Directory "/var/www/html/cgi">
Options  +ExecCGI
AddHandler  cgi-script  .cgi    ##cgi的文件格式
</Directory>

在这里插入图片描述

systemctl  restart  httpd

测试:

在这里插入图片描述
4)wcgi

yum install mod_wsgi  -y
vim /var/www/html/cgi/test.wsgi

在这里插入图片描述

chmod +x /var/www/html/cgi/test.wsgi
vim /etc/httpd/conf.d/adefault.conf

在这里插入图片描述

systemctl restart httpd

测试:
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值