1、Apache作用
http://
超文本传输协议
http://超文本传输协议提供软件
Apache
nginx
stgw
jfe
Tengine
2.Apache的安装
dnf search http
dnf install httpd.x86_64 -y
3、Apache的启用
systemctl enable --now httpd #开启http服务并设定开机启动
firewall-cmd --permanent --add-service=http
#设置防火墙策略,一直允许http服务
firewall-cmd --reload
#重新加载防火墙,让策略生效
firewall-cmd --list-all
#在防火墙策略可以看到http
如果设定成功,此页面可以看到,这为Apache默认页面
4、Apache的基本信息
服务名称:httpd
配置文件:
/etc/httpd/conf/httpd.conf #主配置文件
/etc/httpd/conf.d/*.conf #子配置文件
默认发布目录 :/var/www/html
可以更改,但更改时也需要授权访问,否则访问不到
默认发布文件:index.html
可以在主配置文件更改(默认发布文件可以有多个)
写上westos index.html 意为访问时可直接看到westos内容,但若westos删除,则可以直接看到index.html内容
默认端口: 80 #http
443 #https
可以更改,但在更改后需要在防火墙更改策略,并且访问时写上端口号
日志 /etc/httpd/logs
5.Apache的访问控制权限
1)在配置文件更改访问控制权限
/etc/httpd/conf/httpd.conf
<Directory “var/www/html/westos”>
Order Allow ,Deny #allow和deny访问的读取顺序
Allow fron ALL #允许任何人访问westos
Deny from 172.168.1.216 #不允许216访问westos
#因为先读allow后读deny,那么deny里面的信息会覆盖allow中的信息
cat var/www/html/westos #查看westos中的内容
此时可以在其他主机上看到westos内容,但216主机上不可以
但若是修改访问控制权限,则216主机也可以访问得到
2)建立Apache目录认证文件
htpasswd -cm /etc/httpd/.htpasswd admin
#当认证文件不存在时需要加参数-c,当认证文件存在时加-c参数会删除原有内容
#注意,这里的用户,在系统中可不存在,只是借用一下身份
编辑配置文件
/etc/httpd/conf/httpd.conf
<Directory “/var/www/html/westos”>
AuthUserFile /etc/httpd/.htpasswd #指定认证文件
AuthName “Please input username and passwd” #指定认证提示
AuthType basic #指定认证类型
Require user admin #认证文件中admin用户可以通过认证
#Require valid-user #认证文件中任一个用户都可以通过
#上面这两句都是指定认证用户,两句任选其一
< /Directory>
ctrl+shift +del #清空浏览器信息
此时输入用户和你刚设定的密码即可通过认证
6、Apache的虚拟主机
我们设置的Apache同一网址只能看到同一页面,但一般情况下同一页面关键字不同看到的东西不同
准备条件:
浏览器所在主机书写本地解析
vim /etc/hosts
cd /etc/httpd/conf.d/ #进入子配置目录
vim vhost.conf #指定子配置文件
书写配置文件,然后重启服务
就可以同一网址关键字不同对应的不同页面
访问输入没有被设定过的域名时,会访问到设置的默认路径下的内容;输入设定过的内容时,会显示服务器在http子配置文件设定的此域名的访问路径里的内容
8、Apache的语言支持
dnf install httpd-manual -y #apache文档
1)php
dnf install php -y
vim /var/www/html/index.php
在访问时就会出现php说明页面
2)cgi
在默认发布目录下建立cgi目录,并编辑文件
再给文件执行权限
vim /etc/httpd/conf.d/vhost.conf
此时在网页上访问,会显示此脚本执行过后的结果
3)wsgi
书写wsgi测试脚本
vim /var/www/html/wsgi/index.wsgi
dnf install python3-mod_wsgi
vim /etc/httpd/conf.d/vhost.conf
systemctl restart httpd
vim /etc/hosts
将域名解析写入其中
此时在页面上访问,会显示此脚本执行过后的结果
9、Apache的加密传输
安装加密插件,并且可以观察到此时已经生成ssl文件
dnf install mod_ssl -y
firewall-cmd --permanent --add-service=https #使防火墙永久允许https服务
此时访问网页可通过https访问,但我们可以看到,所生成的证书不是我们自己生成的
我们在浏览器可以删掉已经拥有的此证书
生成私钥
生成证书签名文件
生成证书
编辑文件
编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
(上面写的是公钥位置,下面写的是证书位置)
vim /etc/httpd/conf.d/vhost.conf
systemctl restart httpd
vim /etc/hosts
此时通过https服务访问页面,可以看到证书为我们自己所生成的那个
但此时我们发现仍是可以绕过https的加密,直接通过http访问页面,不安全
所以再次vim /etc/httpd/conf.d/vhost.conf
添加
systemctl restart httpd
此时访问页面,可以看到被强制访问https