Nginx深度优化

  • 时间:2018-07-12 22:43 作者:Java填坑之路 来源:Java填坑之路 阅读:499
  • 扫一扫,手机访问
摘要:隐藏版本号修改使用户与组网页缓存时间日志切割连接超时更改进程数网页压缩防盗链FPM参数优化一、隐藏版本号1.在centos7系统中通过curl命令查看curl -I http://192.168.100.262.修改nginx.conf配置文件,在http{}内增加server_tokens off
  1. 隐藏版本号
  2. 修改使用户与组
  3. 网页缓存时间
  4. 日志切割
  5. 连接超时
  6. 更改进程数
  7. 网页压缩
  8. 防盗链
  9. FPM参数优化

一、隐藏版本号

1.在centos7系统中通过curl命令查看

curl -I http://192.168.100.26

Nginx深度优化

2.修改nginx.conf配置文件,在http{}内增加server_tokens off;语句

Nginx深度优化

3.重启nginx

killall -1 nginx

4.用curl命令查看验证

curl -I http://192.168.100.26

Nginx深度优化


二、修改使用户与组

Nginx运行时进程需要有使用户和组的支持,使用以实现对网站文件读取时进行访问控制。主进程由root创立,子进程由指定的使用户与组创立,默认为nobody。

1.编译nginx时指定使用户与组

./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module

2.修改nginx配置文件指定使用户与组

vim /usr/local/nginx/conf/nginx.conf

Nginx深度优化

3.重启nginx

killall -1 nginx

4.查看nginx进程信息(主进程root使用户,子进程nginx使用户)

ps aux | grep nginx

Nginx深度优化


三、网页缓存时间

当Nginx将网页数据放回给用户端后,能设置缓存时间,以便日后进行重复请求访问,以加快访问速度、同时减轻服务器压力,一般对静态资源进行设置,对动态网页不要设置缓存时间。

1.下面对网站的图片进行指定缓存时间设置

Nginx深度优化

2.修改nginx配置文件,指定缓存时间为1天

vim /usr/local/nginx/conf/nginx.conf

location ~.(gif|jpg|jepg|png|bmp|ico)$ {

root html;

expires 1d;

}

Nginx深度优化

3.重启nginx

killall -1 nginx

4.Fiddler工具进行抓包验证

Nginx深度优化


四、日志切割

Nginx通过nginx的信号控制功可以脚原本实现日志的自动切割,并将脚本加入到Linux的计划性任务中,让脚本在每天固定的时间执行,得以实现日志切割功可以。

1.编写fenge.sh脚本

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"

[ -d $logs_path ] || mkdir -p $logs_path

mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d

kill -USR1 $(cat $pid_path) #创立新日志文件

find $logs_path -mtime +30 | xargs rm -rf #删除30天前的日志文件

2. 为脚本赋予执行权限

chmod +x /opt/fenge.sh

3.执行脚本,测试日志文件能否分割成功

. /fenge.sh

Nginx深度优化

4.增加计划性任务

crontab -e

#每日凌晨1:00执行脚本

0 1 * /opt/fenge.sh


五、连接超时

一般网站中,为了避免同一个用户长时间占使用连接,造成资源白费,能设置相应的连接超时参数,实现对连接访问时间的控制。

1. 修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

Nginx深度优化

2.重启nginx

killall -1 nginx

3.对网站进行访问,并用Fiddler工具进行抓包验证

Nginx深度优化


六、更改进程数

在高并发环境中,需要启动更多的Nginx进程以保证快速响应,使用以解决使用户的请求,避免造成阻塞。

1.查看ngixn运行进程的个数

cat /proc/cpuinfo | grep -c "physical"

2.修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

Nginx深度优化

3.重启nginx

killall-1 nginx

4.查看nginx进程数

ps aux | grep nginx

Nginx深度优化


七、网页压缩

Nginx服务器将输出内容压缩后进行传输,以节约网站的带宽,提升使用户的访问体验,默认已经安装了该板块。

1.修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

gzip on;

gzip_buffers 4 64k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_min_length 1k;

gzip_vary on;

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss text/jpg text/png;

2.重启nginx

killall -1 nginx

3.创立一个大于1KB以上的网页文件,而后对其进行访问抓包

curl -I -H "Accept-Encoding: gzip, deflate" 192.168.100.26/

Nginx深度优化


八、防盗链

在网站中,一般都要配置防盗链功可以,以避免网站内容被非法盗使用,造成经济损失,也避免了流量的白费。

1.修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

location ~.(jpg|gif|swf)$ { #匹配.jpg 、.gif 、或者 .swf结尾的文件

valid_referers none blocked .abc.com abc.com; #信任域名站点

if ( $invalid_referer ) {

rewrite ^/ http://www.abc.com/error.png; #重写返回error.png

}

}

2.重启nginx

killall -1 nginx


九、FPM参数优化

Nginx的PHP解析功可以实现是由FPM解决的,为了提高PHP的解决速度,可对FPM板块进行参数的调整。

1.安装带有FPM板块的PHP环境;

2.FPM进程有两种启动方式,由pm参数指定,分别是static和dynamic,前者将产生固定数据的FPM进程,后者将以动态的方式产生FPM进程;

1.修改php-fpm.conf文件

vi php-fpm.conf

pid = run/php-fpm.pid

pm = dynamic #动态方式

pm.max_children=20 #最大启动进程数量为20个

pm.start_servers = 5 #初始启动时进程为5个

pm.min_spare_servers = 2 #最小空闲进程数为2个

pm.max_spare_servers = 8 #最大空闲进程数为8个

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部