1.Nginx服务优化
(1)隐藏版本号
curl -i http://192.168.10.101 //查看版本号
两种隐藏方法
1.修改Nginx主配置文件
修改配置文件方式
cd nginx.conf
vim nginx.conf
将server_tokens off 解除注释 //关闭版本号
nginx -t //测试配置文件语法
systemctl restart nginx //重启服务
curl -i http://192.168.10.101
2.修改Nginx源码文件
设置版本信息
vim nginx-1.12.0/src/core/nginx.h //编辑源码文件
修改版本号和服务器类型
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
--with-http_stub_status_module && make && make install //重新配置和编译
vim /usr/local/nginx/conf/nginx.conf //打开配置文件
找到server_tokens on //打开版本号
systemctl restart nginx
curl -i http://192.168.10.101
2.设置优化参数
(只要修改nginx配置文件,就要重置nginx)
1.修改用户和组
之前在配置nginx时,已经指定了用户和组
vim /usr/local/nginx/conf/nginx.conf
将user 后加上 nginx nginx //即用户和组修改为nginx
ps aux | grep nginx //查看运行情况
2.设置连接超时
vim /usr/local/nginx/conf/nginx.conf
找到keepalive_timeout 设置为 65 180; //默认时间为65秒,设置超时为180秒
去到浏览器输入192.168.10.101 打开开发者工具,即可验证
3.更改进程数
vim /usr/local/nginx/conf/nginx.conf
修改work_processes 和 worker_connections 前者取决于cpu的核数,后者取决于内存大小
ps aux | grep nginx //查看运行情况
4.配置网页压缩
vim /usr/local/nginx/conf/nginx.conf
找到#gzip on 取消注释
到浏览器里192.168.10.101 打开开发者工具,即可验证
5.配置网页缓存时间
(1)以图片为缓存对象,将logo.jpg移动到nginx的工作目录,到浏览器里192.168.10.101 打开开发者工具,查看“网络”中的“消息头”有没有图片的缓存信息
(2)修改nginx配置文件,加入新的location,在location中加入expir参数,指定缓存时间,1d为一天
(3)重启nginx服务后,再次进入到浏览器,查看消息头中有无图片的缓存信息和缓存时间
6.配置防盗链
(1)准备两台主机模拟盗链,都写入以下信息
192.168.10.101 www.benet.com
192.168.10.102 www.accp.com
(2)修改windows的hosts文件,设置域名和ip
192.168.10.101 www.benet.com
192.168.10.102 www.accp.com
(3)将图片logo.jpg放到源主机(benet.com)的工作目录下
cd /usr/local/nginx/html
ls
(4)在盗链主机(accp.com)工作目录下编写盗链页面index.html,盗取源主机(benet.com)的图片
yum -y install httpd
vim index.html
<html>
<body>
<h1> zhe shi wo de dian nao </h1>
< img src="logo.jpg"/>
</body>
</html>
访问盗链的网页http://www.accp.com/insex.html 查看是否盗链成功
(6)配置Nginx防盗链
Nginx的防盗链的原理时加入location,用正则表达式过滤图片类型的文件,对于信任的网址可以正常使用,不信任的网址返回相应的错误图片。在源主机(benet.com)的配置文件中加入以下代码。
cd /usr/local/nginx/html
将errog.png图片放到源主机的目录下
ls
vim /usr/local/nginx/conf/nginx.conf
加入location项
location ~* \. (gift|jpeg|bmp)$ {
valid_referers *.benet.com benet.com;
if ($invalid_referer){
rewrite ^/ http://www.benet.com/error.png;
}
}
重启服务器,重新访问http://www.accp.com/index.html,显示的为errorg.log即为成功