1、Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
2、Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
3、Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
1、HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议;所有的www文件必须准守这个标准;是应用级的协议,主要用于分布式、协作的信息系统;http和https分别使用80、443端口 ,https是加密链接访问;在Internet上,HTTP通信往往发生在TCP/IP连接上,其默认的端口为80,也可以使用其他端口。
2、http的运行原理:
1)Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。
2)若该服务器在特定端口(通常是TCP 80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接。
3)服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。
4)Web浏览器接收到文档后,就将它显示出来。
5)当客户端浏览完成后,就断开与服务器的连接。
1、配置ip和yum源
2、yum install httpd -y ##安装http服务
3、开启http服务,并设置为开机自启。
4、将http加入火墙允许列表(--permanent表示永久性的)
firewall-cmd --list-all ##列出火墙信息
firewall-cmd --permanent --add -service=http ##永久允许http
firewall-cmd --reload ##重新加载火墙策略
5、在默认发布文件写入内容,用主机访问时可以查看到
/var/www/html ##apache的默认发布目录
/var/www/html/index.html ##apache的默认发布文件
6、测试:172.25.254.133
默认发布文件可以有多个,在配置文件里修改,其按顺序执行,即如果前面的文件不存在,则访问后面的。
1)在默认发布目录下新建westos.html加入内容,并且编辑其配置文件:
2)完成后重启http服务
3)在浏览器输入172.25.254.133进行测试:westos.html在前所以访问的是它里面的内容
1)新建一个目录/westos/html,修改其配置文件
mkdir /westos/html -p
vim /etc/httpd/conf/httpd.conf #注释掉119行,写入120行
120 DocumentRoot "/westos/html"
121
122 Require all granted #表示允许所有用户访问
123
2)重启http服务,将新建的/westos/html目录修改为默认发布目录
注意:修改的发布目录必须系统存在,如果不存在需要手动建立,否则访问不到。
3)重启http服务,将新建的/westos/html目录修改为默认发布目录
apache的默认端口为80
1)在主配置文件将apache的80端口修改为8080
2)重启http服务,因为火墙的默认端口是80,所以还要将修改的8080端口加入火墙允许列表里
3)测试:真机访问172.25.254.133:8080 #ip地址后面加端口号
通过使用 Deny 和 Allow 指令,实现允许或者禁止某个主机访问我们的服务器资源。通常 Order 指令也会一起使用,来定义 Deny 和 Allows 指令起作用的顺序。如果不使用 Order 指令,默认的顺序为 Deny, Allow, 就相当于 Order Deny,Allow。
第一步:根据Order的顺序,将顺序在前的所有的Allow指令或者Deny指令应用于 当前请求;也就是说如果是 Order allow,deny ,那么第一步就是将所有的Allow指令应用于当前访问,如果有匹配,那么就允许该访问;如果沒有匹配到一条Allow指令,那么就禁止其访问
第二步:将剩下的另外一个指令的所有语句跟当前请求匹配,如果有匹配就执行相应的访问控制
第三步:如果当前请求没有在前两步匹配到任何指令,就执行 Order 指令中后面的那个指令。
1)在/var/www/html下建立目录westos,在westos下建立发布目录index.html
2)在主配置文件中写入要禁止访问的ip,禁止ip为172.25.254.88的主机访问:
Order Allow,Deny ##访问的顺序Allow和Deny
Allow from All ##Allow的范围是所有人
Deny from 172.25.254.88 ##Deny的范围是172.25.254.133
3)重启http服务
4)测试:172.25.254.133/westos
在主配置文件中写入要允许访问的ip,允许ip为172.25.254.88的主机访问:
Order Deny,Allow
Allow from 172.25.254.88
Deny from All
重启http服务
测试:172.25.254.133/westos
2、基于用户的访问控制
1)先建立用户的目录,把需要发布的内容写入此目录的发布文件中,使访问者可以看到。进入/etc/httpd/,在这个目录下生成用户名和密码的文件westosuser.
mkdir /var/www/html/westos #这里我已经建立了该目录则不需要再次建立
vim /var/www/html/westos/index/html #写入发布文件内容
Cd /etc/httpd/
htpasswd -cm westosuser admin1 #创建用户admin1及westosuser文件
htpasswd -m westosuser admin2 #创建用户admin2
cat westosuser #查看新建用户信息
注意:########/etc/httpd/这个目录下本身没有westosuser这个文件,-c是生成这个文件,第一次创建用户用-cm,因为已经由westosuser文件,所以在此建立用户用-m就可以,否则会覆盖第一次创建的用户########
2)修改主配置文件:
Authuserfile /etc/httpd/westosuser #登录文件所在目录
AuthName "Please input username and password" #访问时的提示语
AuthType basic #基本的认证方式
Require user admin1 #允许admin1用户通过验证进行登录访问
3)重启服务,用真机进行登录访问,需要输入登录文件的用户名admin1和密码方可访问,而admin2用户访问不到。172.25.254.133/westos
4)修改主配置文件,重启服务
Require valid-user #允许所有用户可以访问
1、在主机的本地域名解析里加入准备访问虚拟主机的所有网址
172.25.254.133 www.westos.com news.westos.com music.westos.com
##访问www.westos.com news.westos.com music.westos.com时,全部相 当于访问172.25.254.133这个ip
2、在虚拟主机里:
1)建立指定访问的news和music的访问目录,在访问目录下写入默认发布文件,打开网页就是查看在发布文件中写入的内容。
vim /var/www/virtual/news/html/index.html #编写访问news’s page的网页
vim /var/www/virtual/music/html/index.html 编写访问music’s page的网页
2)进入/etc/httpd/conf.d目录,编辑三个访问文件(需要以a开头否则顺序读取的时候读取不到)
vim a_default.conf ##需要以a开头否则顺序读取的时候读取不到
DocumentRoot /var/www/html ##httpd的默认发布目录
CustomLog logs/default.log combined ##混合日志文件
vim news.conf
ServerName news.westos.com ##访问的域名
DocumentRoot /var/www/virtual/news/html ##指定news所在的发布目录
CustomLog logs/news.log combined ##混合日志文件
Require all granted 给该目录授权才能访问
vim music.conf
ServerName music.westos.com
DocumentRoot /var/www/virtual/music/html
CustomLog logs/music.log combined
Require all granted
3、完成后重启apache服务,并在浏览器分别输入www.westos.com,news.westos.com,music.westos.com依次访问查看
1、php语言
1)yum install php -y ##安装php
2)切换到/var/www/html目录下,编写php脚本文件,重启服务
3)测试:输入172.25.254.133/index.php就会出现php的界面
2、cgi语言
1)在/var/www/html下建立cgi目录,在cgi目录下编写cgi脚本内容来动态显示系统当前时间。
2)完成后赋予执行权限,并./文件查看脚本文件内容编写是否正确。若不能执行则代码有问题
3)在之前建立的a_default里写入cgi的授权模块,完成后重启服务。
#####cgi的配置信息可以安装httpd-manual,在浏览器输入ip/manual去网页查看#####
4)测试:172.25.254.133/cgi/index.cgi
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
1、部署https
1)安装所用到的软件,生成443端口及https服务,将其加入火墙允许列表,重新加载火墙策略,重启httpd服务
2)测试:浏览器输入https://172.25.254.133然后获得证书
3)yum install crypto-utils -y ##生成产生加密证书的命令
4)配置其证书信息
genkey www.westos.com ##生成加密的key和加密证书的文件及其位置
运行后会产生如下界面:选择Next进行下一步
选择key文件的大小,建议选择1024适中
下图界面为收集密码数据,速度比较慢,可以通过一个新的shell命令行随机输入字符,速度会加快
是否将证书向CA机构发送,企业认证都是收费的,选择NO不发送
不需要钥匙
填写证书的基本信息,在下载证书的时候均可以查到。依次为国家、省份、所在城市、公司名称,所属部门,网站网址名称,完成后Next即可创建成功
5)https的配置文件会自动在/etc/httpd/conf.d/下生成,为ssl.conf文件
修改/etc/httpd/conf.d/ssl.conf配置,在100行和107写入生成的key和密码
证书文件路径,完成后重启服务
6)测试:在浏览器输入https://www.westos.com,查看证书信息
2、https的网页重写
目的:输入指定网址强制使用443https加密
1)在真机本地解析/etc/hosts加入测试网址login.westos.com
2)在/var/www/virtual下建立login/html目录并编辑目录下/index.html 写入内容
3)编辑配置文件vim /etc/httpd/conf.d/login.conf,重启服务
SSLEngine on ##表示认证打开
Require all granted ##允许所有人访问
RewriteEngine on ##打开重写功能
RewriteRule ##重写规则
^(/.*)$ ##客户在浏览器地址中输入的所有字符
https:// ##强制用户加密访问
%{HTTP_HOST} ##客户请求主机
$1 ##"$1"表示^(/.*)$的值
[redirect=301] ##临时重写 [redirect=302]永久重写
4)测试:浏览器输入login.westos.com访问查看,认证后发现可以网址前面强制加入https://