Apache的管理及优化(下)
七、Apache的语言支持
下载Apache的说明:如有问题可在里面搜索
dnf install httpd-manual -y
1、html
- 超文本标记语言,它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体
- 系统默认支持(上面实验均为html语言)
2、php
- 计算机编程语言,即“超文本预处理器”,是在服务器端执行的脚本语言,主要目标是允许Web开发人员快速编写动态网页
- 系统默认不支持,需要下载
dnf search php ##搜索php
dnf install php.x86_64 -y ##下载php
vim /var/www/html/index.php ##编写php文件
systemctl restart httpd ##重启httpd服务
php -m
:显示php支持沟通的程序
3、cgi
- 公共网关接口,CGI 应用程序能与浏览器进行交互
- 系统默认支持
vim /var/www/html/index.cgi ##编写cgi文件
vim /etc/httpd/conf.d/vhost.conf ##编辑配置文件
systemctl restart httpd ##重启httpd服务
chmod +x index.cgi ##添加执行权限
4、wsgi
- PythonWeb服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口
- 需要下载,并编辑配置文件,在访问端做地址解析(类似于虚拟主机)
dnf search wsgi ##搜索wsgi
dnf install python3-mod_wsgi.x86_64 -y ##下载wsgi
vim /var/www/html/index.wsgi ##编写wsgi文件
vim /etc/httpd/conf.d/vhost.conf ##编写配置文件
systemctl restart httpd ##重启httpd服务
访问端做地址解析:
vim /etc/hosts
八、Apache的加密访问
1、安装加密插件:
dnf install mod_ssl -y ##下载加密插件
systemctl restart httpd ##重启httpd服务
2、火墙设定:
firewall-cmd --permanent --add-service=https ##在火墙中永久开启https访问
firewall-cmd --reload ##刷新火墙使设定生效
3、访问https://www.sk.com
- 此时证书为原始证书
接受风险后,即可访问:
4、生成证书:
- 方法一(逐步操作)
(1)生成私钥:
-out
:输出文件;2048
:加密长度
openssl genrsa -out /etc/pki/tls/private/www.sk.com.key 2048
(2)生成证书签名文件:
req
:请求;-new -key
:新钥匙
openssl req -new -key /etc/pki/tls/private/www.sk.com.key -out /etc/pki/tls/certs/www.sk.com.csr
(3)生成证书:
x509
:证书格式;-days 365
:有效期;-in
:加载签证名称;-signkey
:指定钥匙
x509 -req -days 365 -in /etc/pki/tls/certs/www.sk.com.csr -signkey /etc/pki/tls/private/www.sk.com.key -out /etc/pki/tls/certs/www.sk.com.crt
- 方法二(一步操作)——推荐
生成证书:
req
:请求;rsa:2048
:加密长度;-nodes
:忽略依赖性;-sha256
:加密方式;
-keyout
输出钥匙文件;-x509
:证书格式;-days 365
:有效期;-out
:输出证书文件
openssl req --newkey rsa:2048 -nodes -sha256 -keyout /etc/pki/tls/private/www.sk.com.key -x509 -days 365 -out /etc/pki/tls/certs/www.sk.com.crt
5、修改配置文件
vim /etc/httpd/conf.d/ssl.conf ##编辑ssl配置文件
systemctl restart httpd ##重启httpd服务
6、访问https://www.sk.com
- 此时证书为新生成的证书
接受风险后,即可访问:
查看生成的证书:
7、指定页面加密-网页重写
- 访问
https:www.sk.com
时会有加密 - 访问
www.sk.com
时没有加密,而用户一般不会输出https://
,就需要对www.sk.com
加密,进行网页重写
^(/.*)$ | 浏览器地址栏中的输入 |
%{HTTP_HOST} | 请求主机 |
$1 | RewriteRule后面跟的第一串字符的值 |
vim /etc/httpd/conf.d/vhost.conf ##编辑配置文件
systemctl start httpd ##重启httpd服务
- 此时再访问
www.sk.com
时会自动转变为https://www.sk.com
九、Squid+Apache
1、squid正向代理
- 实验环境:
(1)主机A设定ip可以连接B主机,同时也可以上网
(2)主机B设定ip不能上网 - 实验效果:
让B主机不能上网但浏览器可以访问互联网页 - 操作:
实验前A主机:
实验前B主机:
A主机操作:
dnf install squid -y ##下载squid
vim /etc/squid/squid.conf ##编辑配置文件
systemctl restart squid ##重启squid服务
firewall-cmd --permanent --add-service=squid ##永久设定火墙添加squid服务
firewall-cmd --reload ##刷新火墙
B主机操作:
B主机此时依旧不能上网
2、squid反向代理
- 实验环境
(1)A主机没有Apache服务器,有Squid服务,没有数据负责缓存
(2)B主机有Apache服务器 - 实验效果
访问A主机的ip时显示B主机的内容 - 操作:
A主机:
dnf remove httpd -y ##卸载Apache
vim /etc/squid/squid.conf ##编辑配置文件
systemctl restart squid ##重启squid服务
firewall-cmd --permanent --add-service=http ##永久设定火墙添加squid服务
firewall-cmd --reload ##刷新火墙
编辑配置文件时可以参考:
/usr/share/doc/squid/squid.conf.documented
现在访问A主机ip:
B主机操作:
dnf install httpd -y ##下载Apache
systemctl enable --now httpd ##开启httpd服务
systemctl stop firewalld.service ##关闭火墙
vim /var/www/html/index.html ##编辑html文件
'nihao'
再访问A主机的ip: