网站首页 > 技术教程 正文
Nginx深入优化
Nginx (engine x) 是一个高性能的HTTP和反向代理服务器, 轻量级、高并发的web服务器。
在实际的生产环境中,我们仍然不可能直接使用默认配置的Nginx来充当服务器。毕竟,为了更充分合理地利用Nginx服务器,我们都应该根 据自己的实际需要对nginx的默认配置作出一些必要的调整。
优化:隐藏版本号 、修改用户与组 、 网页缓存时间、 日志切割 、 连接超时 、更改进程数 、网页压缩、 防盗链 、FPM参数优化
- 隐藏版本号
- 隐藏版本可以减少被攻JI的风险,保护服务器安全运行。
# curl -I http://192.168.200.131/ //查看web信息 可以看到nginx版本号
 # vim /usr/local/nginx/conf/nginx.conf
 http {
 include mime.types;
 default_type application/octet-stream;
 server_tokens off; //添加该行
 ...
 }
 # systemctl stop nginx
 # systemctl start nginx //重启服务
 # curl -I http://192.168.200.131/
- 修改用户与组
Nginx运行时进程需要有用户和组的支持,用以实现对网站文件读取时进行访问控制。主进程由root创建,子进程由指定的用户与组创建,默认为nobody。
# vim /usr/local/nginx/conf/nginx.conf user nginx nginx; //修改 # systemclt restart nginx # ps aux | grep nginx //查看nginx进程信息(主进程root用户,子进程nginx用户)
- 缓存时间
当Nginx将网页数据放回给客户端后,可以设置缓存时间,以便日后进行重复请求访问,以加快访问速度、同时减轻服务器压力,一般对静态资源进行设置,对动态网页不要设置缓存时间。
# vim /usr/local/nginx/conf/nginx.conf
***server里面添 :缓存为1天***
location ~\.(gif|jpg|jepg|png|bmp|ico)$ {
 root html;
 expires 1d;
 }
# systemclt restart nginx
- 日志切割
# 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
# chmod +x fenge.sh # ./fenge.sh # crontab -e //设置成周期性计划任务 0 1 * * * /opt/fenge.sh //每天凌晨1点执行
- 连接超时
一般网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现对连接访问时间的控制。
 # vim /usr/local/nginx/conf/nginx.conf
 http {
 ...
 keepalive_timeout 65 180; //设置超时180秒
 client_header_timeout 80;
 client_body_timeout 80;
 ...
 }
keepalive_timeout 65 180;
第一个参数:指定了与客户端的keep-alive连接超时时间;值为0会禁用keep-alive客户端连接;
第二个参数:可选、在响应的header域中设置一个值“Keep-Alive: timeout=time”;
client_header_timeout 80;
指定等待客户端发送请求头的超时时间
client_body_timeout 80;
指定请求体读超时时间
# systemclt restart nginx //重启服务
- 更改进程数
在高并发环境中,需要启动更多的Nginx进程以保证快速响应,用以处理用户的请求,避免造成阻塞。
# cat /proc/cpuinfo | grep -c "physical" //cpu核数 # vim /usr/local/nginx/conf/nginx.conf worker_processes 4; //修改为核数相同或者2倍 worker_cpu_affinity 0001 0010 0100 1000; //设置每个进程由不同cpu处理 # systemclt restart nginx //重启服务 # ps aux | grep nginx //查看进程数
- 网页压缩
Nginx服务器将输出内容压缩后进行传输,以节约网站的带宽,提升用户的访问体验,默认已经安装了该模块。
# 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; # systemclt restart nginx //重启服务 # curl -I -H "Accept-Encoding: gzip, deflate" 192.168.200.131/ //请求自定义的头部信息
- fpm参数优化
Nginx的PHP解析功能实现是由FPM处理的,为了提高PHP的处理速度,可对FPM模块进行参数的调整。
1:安装带有FPM模块的PHP环境;
2:FPM进程有两种启动方式,由pm参数指定,分别是static和dynamic,前者将产生固定数据的FPM进程,后者将以动态的方式产生FPM进程;
# vi php-fpm.conf pid = run/php-fpm.pid pm = dynamic pm.max_children=20 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8
- 防盗链、
在网站中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失,也避免了流量的浪费。
# vim /usr/local/nginx/conf/nginx.conf
 location ~*\.(jpg|gif|swf)$ {
 valid_referers none blocked *.benet.com benet.com;
 if ( $invalid_referer ) {
 rewrite ^/ http://www.benet.com/error.png;
 }
 }
//匹配jpg、gif、swf 时,返回error.png (error.png 放在站点目录)
# systemclt restart nginx //重启服务
转载地址:http://blog.51cto.com/13630803/2164832
作者若此生无缘的原创作品
猜你喜欢
- 2024-10-09 高性能网站服务器的架设优化-Nginx优化
- 2024-10-09 Nginx性能优化(nginx性能调整)
- 2024-10-09 22页PPT干货:不会Nginx,早晚被优化
- 2024-09-09 蓝易云 - Nginx优化教程。(易语言蓝奏云解析)
- 2024-09-09 NGINX 优化(nginx优化 突破十万并发)
- 2024-09-09 Nginx参数优化概述(nginx常用优化)
- 2024-09-09 Nginx深度优化(nginx内核优化)
- 2024-09-09 关于 Nginx 的一些优化(突破十万并发)
- 2024-09-09 nginx的一些性能参数及优化(nginx性能优化 博客)
- 2024-09-09 跟我学Nginx(六)——nginx原理与优化参数配置
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
- 
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
 
- 标签列表
- 
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
 

本文暂时没有评论,来添加一个吧(●'◡'●)