Nginx服务优化解读

 更新时间:2026年03月02日 08:55:04   作者:ㅤChen  
文章介绍了如何隐藏Nginx版本号以提高安全性,以及如何配置Nginx用户与组以增强访问控制,还讨论了日志切割的方法,以防止日志文件过大,此外,还提到了Nginx和PHP-FPM的配置优化,包括进程管理、缓存设置和防盗链配置

配置Nginx隐藏版本号

隐藏Nginx版本号,避免安全漏洞泄漏

  • Nginx隐藏版本号的方法
  • 修改配置文件法
  • 修改源码法

将Nginx配置文件中server_tokens 选项的值设置为off

vi nginx.conf

修改配置文件 server_tokens off; 关闭版本号

nginx -t 检查语法

重启服务,访问网站使用curl -l命令检测

systemctl restart nginx
curl -l http://192.168.100.111

使用PHP处理动态 网页

若PHP配置文件中配置了fastcgi_param

SERVER_SOFTWARE 选项

则编辑php-fpm配置文件,将fastcgi_param

SERVER_SOFTWARE 对应的值修改为astcgi_param

SERVER_SOFTWARE nginx;

修改源码法

Nginx源码文件/usr/src/nginx-1.12.0/src/core/nginx.h包含版本信息,可以随意设置

重新编译安装,隐藏版本信息

实例

#define NGINX_VERSION “1.1.1” ,修改版本号为1.1.1
#define NGINX_VER “IIS” ,修改软件类型为IIS

重启服务,访问网站使用curl -l 命令检测

修改Nginx用户与组

Nginx运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制

Nginx默认使用nobody用户账号与组账号

修改的方法

编译安装时指定用户与组

修改配置文件指定用户与组

编译安装时指定

创建用户账号与组账号,如nginx

编译安装时–user与–group指定Nginx服务的运行用户与组账号

./congigure
-prefix=/usr/local/nginx
–user=nginx
–group=nginx \

修改配置文件法指定

新建用户账号,如nginx

修改著配置文件 user选项,指定用户账号与组账号

重启nginx服务,使配置生效

使ps aux命令查看nginx的进程信息,验证运行用户账号改变效果

实现Nginx的日志切割

随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注Nginx志文件

太大的白志文件对监控是一个大灾难

定期进行日志文件的切割

Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割

通过Linux的计划任务周期性地进行日志切割

编写脚本进行日志切割的思路

设置时间变量

设置保存日志路径

将目前的日志文件进行重命名

重建新日志文件

删除时间过长的日志文件

设置cron任务,定期执行脚本自动进行日志分割

FOM优化参数

Static的方式的参数

  • pm.max_children:指定启动的进程数量

Dynamic方式的参数

  • pm.max_chidren:指定启动进程数的最大值
  • pm.start_servers:动态方式下初始的fpm进程数
  • pm.min_spare_servers:动态

版本隐藏

先建立个链接 方便访问

修改配置

ln -s /usr/local/nginx/conf/nginx.conf /etc/
vi /etc/nginx.conf

保存后退出,重启

查看版本:

curl -I http://localhost

隐藏版本,需要修改的配置

vi /etc/nginx.conf

修改第一个是日期 第二个是版本号 第三个搭建的软件

vi nginx-1.12.2/src/core/nginx.h

改好后 关闭nginx 再编译安装

安装结束后 启动nginx服务

查看版本

会发现 搭建的软件 从nginx变成了IIS

修改Nginx账户

先查看

ps aux | grep nginx

修改配置

vi /etc/nginx.conf

修改后

配置缓存

先放进图片 /usr/local/nginx/html

修改Nginx的配置

网页图片链接

重启服务

会发现只有图片缓存了

日志分割

	vim 1.sh

内容:

	#!/bin/bash
	#日志分割
	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}/aa.com.access.log-$d
	kill -HUP $(cat $pid_path)                   
	find $logs_path -mtime +60 | xargs rm -rf 

给权限 再执行脚本

截切结果

设置cron任务计划

查看

配置连接超时

	vi /etc/nginx

	keepalive_timeout  65 180;
	client_header_timeout 80;
	client_body_timeout 80;

重启nginx服务

访问IP 抓包查看

更改进程数

查看核心数
	cat /proc/cpuinfo | grep -c "physical"
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20201201092507401.jpg)

查看进程

编辑配置文件

vi /etc/nginx.conf 
worker_processes  8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

检查语法 可能 字符不够

就用

ulimit -n 65535 >> /etc/rc.local

再检测语法 就可以了

网页压缩

vi /etc/nginx.conf

前面#去掉

gzip  on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/jpg image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

检查语法

重启服务

设置防盗链

vi /etc/nginx.conf
location ~* \.(jpg|gif|swf)$ {
         valid_referers none blocked *.chen.com chen.com 192.168.100.111;
         if ($invalid_referer ) {
         rewrite ^/ http://www.chencom/2.jpg;
         }
    }

检查语法

重启服务

把图片 复制到 /usr/local/nginx/html/

进入站点目录修改index.html

防盗链设置成功

FPM模块优化

cd /usr/local/php/etc/php-fpm.d/
vi www.conf

ps aux | grep php-fpm

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Nginx服务器中的日志相关配置

    详解Nginx服务器中的日志相关配置

    这篇文章主要介绍了详解Nginx服务器中的日志相关配置,Nginx是拥有高性能的异步非阻塞型服务器,需要的朋友可以参考下
    2015-08-08
  • SpringBoot前端后端分离之Nginx服务器下载安装过程

    SpringBoot前端后端分离之Nginx服务器下载安装过程

    Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,这篇文章主要介绍了SpringBoot前端后端分离之Nginx服务器,需要的朋友可以参考下
    2022-08-08
  • Nginx FastCGI缓存的实现示例

    Nginx FastCGI缓存的实现示例

    Nginx的FastCGI缓存是一种性能优化手段,通过缓存动态内容减少对后端服务器的请求,提高系统响应速度,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Nginx中proxy_pass的斜杠的两种方式

    Nginx中proxy_pass的斜杠的两种方式

    Nginx的官方文档将proxy_pass分为不带URI和带URI两种类型,本文就来介绍Nginx中proxy_pass的斜杠的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • Nginx代理MySQL实现通过域名连接数据库的详细教程

    Nginx代理MySQL实现通过域名连接数据库的详细教程

    我们的生产环境基本上都部署在云服务器上,例如应用服务器、MySQL服务器等,如果MySQL服务器直接暴露在公网,就会存在很大的风险,为了保证数据安全,MySQL服务器的端口是不对外开放的,所以本文介绍了Nginx代理MySQL实现通过域名连接数据库的详细教程
    2024-07-07
  • nginx代理部署Vue刷新页面404的问题解决

    nginx代理部署Vue刷新页面404的问题解决

    在上线vue开发的前端网页部署在服务器上后,刷新页面显示404,本文就来介绍一下nginx代理部署Vue刷新页面404的问题解决,感兴趣的可以了解一下
    2023-12-12
  • 在Nginx用htpasswd对网站进行密码保护的设置方法

    在Nginx用htpasswd对网站进行密码保护的设置方法

    很多时候我们需要对一些网站进行密码保护,比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的,并非网站应用层的注册登录那一套,而是利用服务器配置和htpasswd文件来实现访问的密码验证
    2013-06-06
  • Nginx限制带宽配置示例

    Nginx限制带宽配置示例

    这篇文章主要介绍了Nginx限制带宽配置示例,本文网罗了3个方法,希望可以帮到大家,需要的朋友可以参考下
    2014-09-09
  • nginx支持带下划线的header实现

    nginx支持带下划线的header实现

    如果header name中包含下划线,则忽略掉,本文主要介绍了nginx支持带下划线的header实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    这篇文章主要给大家介绍了关于nginx proxy_pass反向代理配置中url后加不加/的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11

最新评论