关于Nginx的相关优化

引言:Nginx的优化很多,为了让用户有更好的体验优化还是有必要的。像版本隐藏,需要隐藏nginx的版本号,以免安全漏洞泄露,还有连接超时,网页压缩等,让服务器发挥最大的作用。

目录

一、隐藏Nginx的版本号

1.查看Nginx版本号的方法

①本地查看

②浏览器查看

 2.隐藏版本号

①修改配置文件

 ②修改源码

二、修改用户和组

 三、缓存时间

四、日志分割 

五、连接超时

 六、更改进程数

七、页面压缩

 八、盗链与防盗链

1.盗链

 2.防盗链


一、隐藏Nginx的版本号

1.查看Nginx版本号的方法

①本地查看

输入命令curl -I http://192.168.72.8

②浏览器查看

我这边用的是IE浏览器,输入192.168.72.8,打开开发者工具,选择网络,刷新页面,找到192.168.72.8点开,在响应头可以找到

 2.隐藏版本号

①修改配置文件

vim /usr/local/nginx/conf/nginx.conf
http {
    include mime.types;
    default_type application/octet-stream;
    server_tokens off;                #添加,关闭版本号
}
systemctl restart nginx
curl -I http://192.168.226.128

 

 ②修改源码

vim /opt/nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION "1.1.1"			#修改版本号
#define NGINX_VER "IIS" NGINX_VERSION		#修改服务器类型
cd /opt/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
http {
	include mime.types;
	default_type application/octet-stream;
	server_tokens on; 				#打开
)
#开启版本号
#重启服务
systemctl restart nginx 
curl -I http://192.168.72.8

 

二、修改用户和组

没有安装nginx前没有创建用户,则在此服务中默认使用的是nobody

默认是Nginx默认使用nobody用户账号与组账号,修改成下面内容

重启服务,查看服务状态

 三、缓存时间

vim /usr/local/nginx/conf/nginx.conf 
http {
  server {
		location / {
			root html;
			index index.html index.htm;
	}

	location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { 	#加入新的location以图片作为缓存对象
		root html;
		expires 1d;			                    #指定缓存时间,1天
	}    
  }
}

nginx -t 查看服务是否成功运行,systemctl restart nginx 重启nginx服务 

上传图片、修改站点文件

cd /usr/local/nginx/html
vim inde.html
<h1>Welcome to nginx</h1>
<img src="rabbit. jpg"/> 				#插入识别图片

输入网址测试,或者curl测试

四、日志分割 

vim /opt/fenge.sh
#!/bin/bash
# Filename:fenge , sh
d=$(date -d "-1 day"  "+%Y%m%d")            #定义前一天的时间
logs_path="/var/log/nginx"                  #日志位置
pid_path="/usr/local/nginx/logs/nginx.pid"  #定义存放pid位置
[ -d $logs_path ] || mkdir -p $logs_path    #判断指定路径是否存在,不存在则创建
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d  #移动日志到指定目录
kill -HUP $(cat $pid_path)                  #重载nginx
find $logs_path -mtime +30 | xargs rm -rf   #删除前三十天的日志
chmod +x /opt/fenge.sh           #分割日志的脚本赋权
crontab -e                       #创建计划任务
systemctl restart nginx          #重启nginx
netstat -natp | grep nginx       #查看端口是否开启
bash -x fenge.sh                 #运行脚本测试

ls /var/log/nginx可以看到前一天的日志

五、连接超时

vim /usr/local/nginx/conf/nginx. conf
#keepalive_timeout 0;
keepalive_timeout 100;
client_header_timeout 80;	#等待客广端发送请求头的超时时间,超时会发送408错误
client_body_timeout 80; 	#等待客户端发送请求体的超时时间

 六、更改进程数

可以使用nproc查看cpu核心数,根据cpu核数配置进程,把进程分配给cpu,充分利用cpu性能

vim /usr/local/nginx/conf/nginx.conf
#user nobody; 
worker_processes 4;		                 #修改与CPU核数相同或2倍
worker_cpu_affinity 0001 0010 0100 1000; #设置每个进程由不同的cpu处理

七、页面压缩

vim /usr/local/nginx/conf/nginx.conf
http {
	gzip on; 			    #取消注释,开启gzip压缩功能
	gzip_min_length 1k; 	#最小压缩文件大小
	gzip_buffers 4 16k; 	#压缩缓冲区,大小为4个16k缓冲区
	gzip_http_version 1.1; 	#压缩版本(默认1.1,前端如果是squid2.5请使用1.0 )
	gzip_comp_level 6; 	    #压缩比率
	gzip_vary on; 		    #支持前端缓存服务器存储压缩页面
	gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;		#压缩类型,表示哪些网页文档启用压缩功能
}
cd /usr/local/nginx/html    #到这个目录下拷贝图片的页面进行测试
vim index.html
<img src="wan.jpg"/>		#网页中插入图片
</body>
</html>
systemctl restart nginx     #重启Nginx服务

 八、盗链与防盗链

1.盗链

盗链端:192.168.72.9 nginx

服务端:192.168.72.8 nginx

win10:192.168.72.10                                    #配置/host

服务端准备(72.8):

vim /etc/hosts
echo "192.168.72.8" >> www.abc.com
rm -rf /usr/local/nginx/html/index.html
vim /usr/local/nginx/html/index.html
<h1>Hello</h1>
<img src="wan.jpg"/>
cd /usr/local/ngin/html #上传图片

 

盗链端准备(72.9):

vim /usr/local/nginx/conf/nginx.conf
server_name www.123.com
vim /usr/local/nginx/html/index.html
<html>
<body>
<h1>this daolian</h1>
<img src="http://www.abc.com/wan.jpg"/>
</body>
</html>
vim /etc/hosts
192.168.72.9 www.abc.com

在另一台机器进行验证

vim /etc/hosts
192.168.72.9 www.abc.com www.123.com

 2.防盗链

location ~*\.(jpg|gif|swf)$ {
		valid_referers *.abc.com abc.com;
		if ($invalid_referer ) {
		rewrite ^/ http://www.abc.com/error.png;
		#return 403;
		}
}

测试

总结:Nginx的优化还是很有必要的,像页面压缩可以提高用户体验,减少服务器压力,防盗链可以有效的防止其他网站盗用本网站内容,做些优化还是很有必要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值