Nginx优化

Posted 还行少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx优化相关的知识,希望对你有一定的参考价值。

一、nginx服务优化

1.隐藏版本号

为防止攻击者针对特定版本进行攻击,我们需要隐藏Nginx的版本号
在这里插入图片描述

1.1 修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

1.2 修改源码

[root@localhost ~]# vim /opt/nginx-1.15.9/src/core/nginx.h

在这里插入图片描述
重新编译安装

[root@localhost nginx-1.15.9]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

在这里插入图片描述
在这里插入图片描述

2.修改用户和组

2.1 编译时指定用户和组

[root@localhost nginx-1.15.9]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

在这里插入图片描述

2.2 修改配置文件(编译时未指定用户与组)

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

3.配置网页缓存时间

为加快访问速度,对静态网页设置缓存时间

3.1 以图片作为缓存对象

[root@localhost ~]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# rz -E   //上传图片到网页根目录
rz waiting to receive.
[root@localhost html]# ls
50x.html  index.html  ms.jpeg

在这里插入图片描述

3.2 修改主配置文件,指定缓存时间

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

3.3 重启nginx,查看缓存时间

[root@localhost html]# systemctl stop nginx
[root@localhost html]# systemctl start nginx

在这里插入图片描述

4.日志切割

太大的日志文件不利于分析排查,因此需要定期进行日志文件的切割

4.1 编写脚本

在这里插入图片描述

[root@localhost ~]# chmod +x /opt/fenge.sh  //赋予执行权限

4.2 执行脚本,查看日志是否被切割

[root@localhost ~]# /opt/fenge.sh 
[root@localhost ~]# ls /var/log/nginx/
test.con-access.log-20210622
[root@localhost ~]# date -s 20210624
2021年 06月 24日 星期四 00:00:00 CST
[root@localhost ~]# /opt/fenge.sh 
[root@localhost ~]# ls /var/log/nginx/
test.con-access.log-20210622  test.con-access.log-20210623
[root@localhost ~]# 

4.3 设置定时任务

[root@localhost ~]# crontab -e
30 2 * * * /opt/fenge.sh   //每天凌晨2.30执行脚本

5.设置连接超时

5.1 修改配置文件,设置超时时间

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

5.2 查看效果(请求头和请求体在特殊情况下才能显示效果,此处不演示)

在这里插入图片描述

二、Nginx优化深入

1.更改进程数

高并发时可以修改为cpu核数的两倍

1.1 修改配置文件

[root@localhost ~]# cat /proc/cpuinfo | grep -c "physical"   //查看支持最大核心数
12

只有两个进程
在这里插入图片描述

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

1.2 重启服务,查看效果

在这里插入图片描述

2.配置网页压缩

为节约网站的带宽,将网页内容在输出时进行压缩

2.1 修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

2.2 重启服务,查看效果

[root@localhost ~]# nginx -t  //检查配置文件
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost ~]# systemctl stop nginx   //关闭服务
[root@localhost ~]# systemctl start nginx    //启动服务

在这里插入图片描述

3.配置防盗链

3.1 实现盗链功能

源主机:192.168.30.7
盗链端:192.168.30.6
测试端:win10  192.168.30.2

在这里插入图片描述
在这里插入图片描述

3.1.1 盗链端修改配置文件

查看原图路径
在这里插入图片描述

在这里插入图片描述

3.1.2 查看效果

在这里插入图片描述

3.2 防盗链

3.2.1 修改源主机配置文件

在这里插入图片描述

3.2.2 win10查看效果

在这里插入图片描述

4.FPM参数优化

首先安装带FPM模块的php环境,保证PHP正常运行
FPM进程有两种启动方式,由pm参数指定,分别是static和dynamic
pm.max_childrenstatic模式下空闲进程数上限,大于下面的值
pm.start_servers动态方式下默认开启的进程数,在最小和最大之间
pm.min_spare_server动态方式下最少空闲进程数
pm.max_spare_server动态方式下最大空闲进程数

源码安装的配置路径

 /usr/local/php/etc/php-fpm.conf

总结

默认的Nginx安装参数只能提供最基本的服务,还需要调整相应的参数,才能发挥出服务器的最大作用

以上是关于Nginx优化的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

如何优化C ++代码的以下片段 - 卷中的零交叉

从JVM的角度看JAVA代码--代码优化

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

nginx.conf 忽略了 nginx-ingress 配置映射片段