前言:
3.apache的基础信息
(关火墙)
主配置目录:/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_t
程序开启默认用户:apache
apache日志:/etc/httpd/logs/*
nginx:
轻量级
快
异步非阻塞模式
apache:
原始
稳定
同步阻塞模式--->命中率高
一、实验准备
1、安装Apache
yum install httpd -y ##安装Apache软件
2、启动http服务
systemctl start httpd ##开启http 服务
systemctl enable httpd ##设置开机时自动开启http服务
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ##设置开机时不开启防火墙
3、在火狐浏览器上输入安有Apache软件的ip检查Apache 是否可以正常使用
4、建立Apache的访问文件
cd /var/www/html/ ##Apache访问的共享目录
vim index.html ##Apache默认的访问文件
5、编辑文件内容
<h1>xxxxxx</h1> ##<h1></h1> 表示对字体的修饰
6、测试:再次登录Apache 将显示的是访问文件的内容
7、开启火墙的伪装功能允许火墙永久性的访问Apache
firewall-cmd --permanent --add-service=http ##开启防火墙允许http的伪装功能
firewall-cmd --reload ##刷新
firewall-cmd --list-all ##查看火墙列表
二、Apache主目录参数的修改
(一)、修改默认的发布目录
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件,
这个文件可以指定多个有访问顺序。
1、创建目录
mkdir -p /test/html/ ##创建目录
cd /test/html/ ##进入目录
vim index.html ##在创建好的目录下创建文件(必须以 .html 结尾)
2、编辑文件内容
3、编辑主配主文件
vim /etc/httpd/conf/httpd.conf ##进入Apache主配置文件
内容:
#DocumentRoot "/var/www/html" ##注解掉Apache默认访问的路径
DocumentRoot "/test/html" ##设置访问的目录
<Directory "test">
Require all granted ##设置允许访问test目录下的所有文件
<Directory>
4、重启服务
systemctl restart httpd ##重启服务
5、测试
6、实验的还原为下一个实验做准备
7、重启服务
8、测试结果
(二)、修改默认的访问文件
1、创建新的发布文件
cd /var/www/html ##进入默认的访问文件目录下
vim test.html ##创建新的发布文件 (以 .html 结尾)
2、编辑文件的内容
3、编辑主配主文件 将新建的文件写在默认发布文件的前边
(注:Apache访问的发布文件以顺序形式访问 当访问第一个文件后如果没有找到想要的发布信息才会访问到第二个文件)
4、重启服务
systemctl restart httpd
5、测试
6、还原实验环境
7、测试环境是否被成功还原
(三)修改默认的访问端口
1、Apache默认的访问端口为80
2、编辑主配置文件
vim /etc/httpd/conf/httpd.conf ##编辑主配置文件
Listen 666 ##将默认的端口改为666
3、重启服务
systemctl restart httpd
4、查看连接端口
netstat -antlupe | grep httpd ##查看httpd 连接的端口
测试:
结果:访问失败(说明端口连接未得到开放)
firewall-cmd --permanent --add-port=666/tcp ##开启防火墙允许永久访问666端口
firewall-cmd --reload ##刷新
firewall-cmd --list-all ##查看火墙列表
测试:
5、还原实验环境
实验截图:
三、Apache的虚拟主机
1、定义:可以让我们的一台apache服务器在被访问不同域名的时候显示不同的主页。
2、在真机(浏览器在哪就在那写地址解析)里写地址解析:vim /etc/hosts
(一)、创建访问的文件
1、进入主配置目录下,创建Apache虚拟主机主配置文件
cd /etc/httpd/conf.d ##进入Apache 在主配置目录
vim vhost.conf ##创建Apache 虚拟主机的主配置文件
2、编辑主配置文件的内容
3、创建默认发布的目录
mkdir -p /var/westos/westos.org/{news,music}/html ##创建站点的发布news,music目录
4、查看创建好的发布目录
ls -ld /var/wcestos/westos.org/news/html ##查看生成的目的详细信息
5、在发布目录下创建发布文件
ls -ld /var/wcestos/westos.org/news/html/index.html ##创建Apache默认的发布文件
6、编辑文件内容
同理
7、重启服务
systemctl restart httpd
(二)测试虚拟机的运行情况
1、在测试的主机上进行地处解析
vim /etc/hosts ##地址解析文件
172.25.66.166 www.westos.org news.westos.org music.westos.org ##域名解析
2、检查测试主机是否可以ping通需要访问的域名
ping www.westos.org
ping ngews.westos.org
ping music.westos.org
3、编辑主配置文件
vim vhost.conf
4、开启目录的访问功能
<Directory "/var/westos">
Require all granted ##开启设置允许访问/var/westos/目录下的所有文件
<Directory>
5、重启服务
systemctl restart httpd
6、测试
www.westos.org
music.westos.org
news.westos.org
四、Apache虚拟主机i内部的访问控制
(一)Apache的黑白名单
1、用户的黑名单
(1)、编辑主配置文件
vim vhost.conf ##进入主配置文件
内容:
<Directory "/var/www/html">
Order allow,deny
Allow from all
Deny from 172.25.66.250 ##指定1725.25.66.250用户不可以访问
<Directory>
(2)在172.25.66.250主机上测试(真机)
测试结果:无法访问到发布的内容
(3)在172.25.66.66主机上测试(虚拟机)
2、用户白名单
(1)、编辑主配置文件
vim vhost.conf ##进入主配置文件
内容:
<Directory "/var/www/html">
Order deny,allow
Allow from 172.25.66.250 ##指定只有1725.25.66.250用户可以访问
Deny from all
<Directory>
(2)在172.25.66.250主机上进行测试(真机)
测试结果:可以访问分布的内容
(3)、在172.25.66.66主机上进行测试(虚拟机)
测试结果:无法访问到发布文件的内容
(二)以密码的形式进行访问
1、用户的白名单
(1)生成加密用户
htpasswd -cm /etc/httpd/.htpassfile admin ##生成加密用户(加 -c 表示后边创建的内容会覆盖前边的内容 )
htpasswd -m /etc/httpd/.htpassfile admin ##生成加密用户admin
htpasswd -m /etc/httpd/.htpassfile admin1 ##生成加密用户admin1
(2)、编辑Apache主配置文件
vim vhost.conf ##进入主配置文件
内容:
<Directory "/var/www/html">
AuthUserfile /etc/httpd/.htpassfile
AuthType basic ##访问的类型
Require user admin ##指定只有admin用户可以问
<Directory>
(3)、重启服务
systemctl restart httpd
(4)、测试:
以admin用户身份登录
登录结果:登录成功
以admin1用户登录
测试结果:登录失败
2、允许所有加密用户登录
(1)、编辑主配置文件
vim vhost.conf ##进入主配置文件
内容:
<Directory "/var/www/html">
AuthUserfile /etc/httpd/.htpassfile
AuthType basic ##访问的类型
Require valid-user ##允许所有加密用户都可以问
<Directory>
(2)测试:
以admin1用户身份进行登录
登录成功
以admin用户身份进行登录
登录成功
实验截图:
五、Apache支持的语言
(1)html
(2)php
(一)cgi
1、安装php脚本语言文件
(1)、创建php文件
cd /var/www/html/ ##进入发布u目录下创建文件
vim index.php ##编辑文件必须以php结尾
内容:
<?php
phpinfo();
?>
(2)、安装php软件
yum install php -y ##cgi脚本语言的安装
(3)、查看生成的语言脚本文件
ls /etc/httpd/conf.d/ ##查看生成的脚本语言文件
(4)、测试
www.westos.org/index.php
2、安装Apache使用手册
yum install http-manual -y
2、查看cgi语言的使用方法
3、建立cgi目录
mkdir cgi
vim index.cgi ##创建以 .cgi 结尾的文件
4、查看cgi语言在主配置文件中的语法格式
5、将语法文件复制到创建好的文件中
6、赋予文件权限
chmod +x index.cgi
./index.cgi ##查看文件运行的结果
7、进入虚拟主机主配置文件
cd /etc/httpd/conf.d/ ##进入主配置文件的目录下
vim vhost.conf ##编辑主配置文件
内容:
<Directory "var/www/html/cgi"> ##允许访问/var/www/html/cgi 目录下的所有内容
Option +ExecCGI
AddHanler cgi-scipt.cgi
<Directory>
8、重器服务
systrmctl restart httpd
9、测试 :
妈妈
(二)、wsgi
1、安装wsgi语言脚本软件
yum search wsgi
yum install mod_wsgi.x86_64 -y
cd /etc/httpd/conf.d/ ##进入主配置文件的目录下
vim vhost.conf ##编辑主配置文件
内容:
WEGIScriptAlias /WSGI /var/www/html/index.wsgi
2、重启服务
3、测试:
172.25.66.166 /WSGI
六、网页加密访问https
降低了用户的访问时的效率
保证用户的信息不被泄露
传输协议的加密
1、安装ssl认证证书
yum install mod_ssl -y
查看安装好的证书文件
2、安装加密软件
yum install crypto-utils -y
3、对访问的用户进行加密
genkey node1.westos.org
(1)、选择密钥所对应的文件
(2)、选择加密的容量选1024
(3)、注意敲键盘
(4)、生成密钥选NO
(5)、选择是否加密 选择无
(6)输入相应的授权信息
(7)、在系统中会自动生成公钥私钥以及相关的认证信息
4、编辑认证文件
vim ssl.conf ##编辑认证文件
将公钥和私钥所在的路径写入文件中以便访问时准确的找到
5、登录网页下载好证书
下载认证证书:
7、测试:
登录将要测试的主机ip
登录结果:自动生成https 网页认证
8、查看认证证书的信息
(1)、查看认证用户的基本信息
(2)、查看认证用户的主目录
(3)、查看认证用户的授权信息
七、设定https虚拟机并设定网页的重写
(一)、建立虚拟机
1、建立虚拟机
编辑虚拟机的主配置文件
vim vhost.conf
内容:
<VirtualHost *:80> ##修改默认访问端口为80
ServerName login.westos.org
DocumentRoot /var/westos/westos.org/login/html ##访问服务所在的目录
CusromLog logs/login.log cimbined ##自定义日志,把日志独立出来 combined混合型日志
##服务的目录已经写过了。所以前面可以不写前面的路径
<VirtualHost>
创建Apache默认的发布目录以及访问文件
编辑文件的内容
2、在真机上进行测试
(1)、编辑地址解析文件
vim /etc/hosts
内容:
添加地址解析文件
login.westos.org
(2)、检查是否可以访问解析的地址信息
(3)、测试:
输入域名进行访问
login.westos.org
(二)、设定网页重写
参数 | 说明 |
^(/.*)$ | 客户在浏览器地址栏中输入的所有字符 |
https:// | 强制客户加密访问 |
%{HTTP_HOST} | 客户请求主机 |
$1 | "$1"表示^(/.*)$的值 |
[redirect=301] | 永久重写,302临时转换 |
1、将认证信息写入虚拟主机主配置文件并将端口改为443
2、重启服务
sysetemctl restart httpd
测试: