如何对Nginx服务进行优化
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,前言Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开
千家信息网最后更新 2025年12月03日如何对Nginx服务进行优化Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
前言
Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
无缓存的反向代理加速,简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
1.1、修改配置文件法
1、先查看版本基本信息
curl -I http://自己的IP地址2、Nginx的配置文件添加:server_tokens 选项的值设置为off
vim /usr/local/nginx/conf/nginx.confhttp { include mime.types; default_type application/octet-stream;#下面添加一段,关闭版本显示 server_tokens off;
3、重启服务
//先关闭服务,再开启服务service nginx stopservice nginx start4、再用 curl 命令查看版本

1.2、修改源码法
Nginx 源码文件 /pot/nginx-1.12.0/src/core/nginx.h
包含了版本信息,可以随意设置
重新编译安装,隐藏版本信息
1、修改版本号
#先把刚才添加的那段话的 off(关闭),改成 on(开启)vim /usr/local/nginx/conf/nginx.confcd /opt/nginx-1.12.2/src/core/vim /opt/ningx-1.12.2/src/core/nginx.hdefine nginx_version 1012002define NGINX_VERSION "1.1.1" //自定义一个版本号define NGINX_VER "nginx/" NGINX_VERSION2、配置编译
cd nginx-1.12.2/./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_modulemake && make install3、启动服务,查看版本
#在启动服务service nginx stopservice nginx start#在查看,就会发现有一个我们自己伪造的一个版本号curl -I http://IP地址/Sercer: nginx/1.1.1 #伪造的版本号注意:如果版本号没有伪造成功,也不显示,有可能是配置文件中关闭了版本显示。解决:删除server_tokens off;
二、修改Nginx用户与组
Nginx运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制
Nginx默认使用nobody用户账号与组账号,一般也要进行修改
修改的方法:
编译安装时指定用户与组
修改配置文件指定用户与组
2.1、修改配置文件指定用户与组
vim /usr/local/nginx/conf/nginx.conf#user nobody;//去掉前面注释符" # ",修改 nobody 指定用户与组 nginx nginx;主进程由root创建 子进程由nginx创建
三、配置Nginx网页缓存时间
当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
一般针对静态网页设置,对动态网页不设置缓存时间
可在Windows客户端中使用fiddler查看网页缓存时间
设置方法 :
可修改配置文件,在http段、 或者server段、 或者location段加入对特定内容的过期参数
1、复制一张图片到 nginx 的站点目录下
#在自己的共享文件中 找到" game.jpg "mkdir /abcmount.cifs //192.168.56.1/lamp7 /abccd /abc/wl//我的图片在wl的包里//复制图片 game.jpg 到站点目录下cp /abc/wl/game.jpg /usr/local/nginx/html/cd /usr/local/nginx/html2、将图片加入到网页内容中
#修改vim index.html#在 Welcome to nginx 的下面添加一段
3、改nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf#在 http {}段,添加一个location ~\.(gif|jepg|jpg|ico|bmp|png)$ { root html; expires 1d;}4、启动服务
#重启服务service nginx restart5、在win10验证
四、配置日志分割
随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注Nginx日志文件
太大的日志文件对监控是一个大灾难
定期进行日志文件的切割
Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划任务周期性地进行日志切割
编写脚本进行日志切割的思路 :
设置时间变量
设置保存日志路径;
将目前的日志文件进行重命名
删除时间过长的日志文件
设置cron任务,定期执行脚本自动进行日志分割
1、编写脚本实现分割
vim /opt/fenge.sh#!/bin/bash#Filename:fenge.shd=$(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_pathmv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$dkill -USR1 $(cat $pid_path)find $logs_path -mtime +30 | xargs rm -rf2、执行脚本
chmod +x fenge.sh./fengs.sh//可以把当前时间修改为2019.12.29,(可以自定义)date -s 2019-12-293、设置cron任务,定期执行脚本自动进行日志分割
执行周期性计划任务crontab -e0 1 * * * /opt/fengs.sh五、实现连接超时
在企业网站中,为了避免同- -个客户长时间占用连接,
造成资源浪费,可设置相应的连接超时参数,实现控制
连接访问时间
使用Fiddler工具查看connection参数
超时参数讲解 :
Keepalive_timeout
设置连接保持超时时间,一般可只设置该参数,默认为75秒,可根据网站的情况设置,或 者关闭,可在http段、server段、 或者location段设置
Client_header_timeout
指定等待客户端发送请求头的超时时间
Client_body_timeout
设置请求体读超时时间
1、修改配置文件
cd /usr/local/nginx/conf vim nginx.conf#在 http {}段 :下面添加keepalive_timeout 65 180;client_header_timeout 80;client_body_timeout 80;//重启服务service nginx restart在win10用fidder验证。
文件
日志
服务
时间
版本
配置
用户
网页
脚本
参数
缓存
任务
图片
客户
处理
运行
均衡
信息
内容
客户端
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
秦淮区网络软件开发
软件开发质量核对单
网络安全与检测技术案件
工业界网络安全会议
比威网络技术
网络安全维护基础知识
wps中如何找重复数据库
网络安全升旗献词
软件开发的普遍原则
2021 物联网数据库
未来的数据库技术分享
分布式数据库 pdf
高铁软件开发培训学校
外君网络安全人才体系研究
单文档树型控件连接数据库
派数据库 实时数据库
梅县软件开发有限公司
软件开发就是在坑人
全面关注网络安全宣传
qq仙侠传怎么查看服务器
服务器管理器没有dhcp
江苏省检测数据库
软件开发团队工作规划和展望
深圳工控软件开发报价
java不同数据库切换
ctf网络安全大赛赛场
科学技术研究所大数据库
hlwsccl服务器
恒讯科技讲解服务器为什么会宕机
pda手持终端软件开发工具