Nginx优化(一)

简介: Nginx优化

前言

在企业信息化环境中,服务器的安全性和响应速度需要根据实际情况进行相应安全配置以达到最优用户体验。

默认的Nginx安装只能提供最基本的服务,还需要调整如网页缓存时间、连接超时、网页压缩相应参数,才能发挥出服务器的最大作用。

提示:以下是本篇文章正文内容,下面案例可供参考


一、Nginx服务优化


1、隐藏版本号

在生产环境中,需要隐藏Nginx的版本号,以避免泄露Nginx版本号,使攻击者无法针对特定版本漏洞攻击。


1.1 查看版本号

在隐藏Nginx版本号之前先用curl命令查看当前Nginx版本。可以使用 Fiddler 工具抓取数据包,查看 Nginx版本,也可以在 CentOS 中使用命令 curl -I http://192.168.59.118 显示响应报文首部信息。


curl -I http://192.168.94.151


1.2 隐藏方法一:修改Nginx源代码文件

指定不显示版本号,将Nginx的配置文件中的server_tokens选项值设置为off,如果没有加上即可。

演示:

1.#修改配置文件
vim /usr/local/nginx/conf/nginx.conf
 ```handlebars
http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;   #添加,关闭版本号
    ......
}
2.#重启nginx
systemctl restart nginx
3.#查看版本是否被隐藏
curl -I http://192.168.59.118
2.#重启nginx
systemctl restart nginx
3.#查看版本是否被隐藏
curl -I http://192.168.59.118


结果:


1.3 隐藏方法二:修改源码文件,重新编译

Nginx源码文件 /usr/src/nginx-1.20.2/src/core/nginx.h 包含了版本信息,可以随意设置,然后重新编译,就可以隐藏版本号了。

演示:


1. #切换至nginx安装包所在目录
cd /opt/
2. #停止nginx服务
systemctl stop nginx.service
3. #切换至安装目录
cd nginx-1.12.0/
4. #切换至内核目录
cd src/core/
5. #进入配置文件
vim nginx.h
#define NGINX_VERSION      "yxp"
#define NGINX_VER          "yyy/" NGINX_VERSION
6. #切换至文件目录
cd ../../
7. #编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
8. #安装
make && make install -j4
9. #将配置文件下的之前关闭版本信息开启
vim /usr/local/nginx/conf/nginx.conf
server_tokens on;
10. #重启nginx
systemctl restart nginx
11. #查看版本信息
curl -I http://192.168.59.118


2、修改用户与组

Nginx运行时进程需要有用户与组支持,用以实现对网站文件读取进行访问控制。主进程由root创建,子进程由指定的用户与组创建。Nginx默认使用nobody用户与组账号,一般也要进行修改。


2.1 方法一:修改配置文件指定用户与组

整体操作:


1. #修改配置文件
vim /usr/local/nginx/conf/nginx.conf
user  cs cs;  #取消注释,修改用户为 cs ,组为 cs
2. #创建非登录用户
useradd -s /sbin/nologin lili
3. #重启服务
systemctl restart nginx
4. #查看是否修改成功
ps aux | grep nginx



重启Nginx查看进程运行情况,主进程由root用户创建,子进程由cs用户创建



2.2 方法二:在编译安装Nginx时指定用户与组

就是在配置Nginx时,在./configure后面指定用与组的参数


./configure
--pre=/usr/local/nginx
--user=cs  #指定用户是cs
--group=cs #指定组是cs
--with-http_stub_status_module
&& make && make install


3、配置网页缓存时间

当 Nginx 将网页数据返回给客户端后,可设置缓存的时间,以方便日后进行相同的请求时直接返回,避免重复请求,加快访问速度,一般只针对静态资源进行设置,对动态网页不用设置缓存时间。


整体操作:


1. #修改配置文件
vim /usr/local/nginx/conf/nginx.conf
        #添加以下内容
    location ~ \.(gif|jpg|jepg|png|bmp|ico)$ {    #加入新的 location,以图片作为缓存对象
      root html;
      expires 1d;                 #指定缓存时间,1天
         }
2. #查看是否有语法错误
nginx -t
3. #重启服务
systemctl restart nginx.service 
4.#在网页中查看服务
http://192.168.59.118/game.png
 Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

演示:

(1)以图片作为缓存对象,复制tutu.jpg 图片到 Nginx 的工作目录,访问

http://192.168.94.151/1ogo.jpg,用 Fiddler 工具进行抓包,如图 8.1 所示,查看响应报文,没有图片的缓存信息。


cd /usr/local/nginx/html
先将tutu.jpg文件传到/usr/local/nginx/html目录下
vim index.html
...... 
<img src="tutu.jpg"/>       #网页中插入图片
</body>
</html>

(2)修改Nginx的配置文件,在新location段加入expires参数,指定缓存时间,1d表示一天。


vim /usr/local/nginx/conf/nginx.conf
        #添加以下内容
    location ~ \.(gif|jpg|jepg|png|bmp|ico)$ {    #加入新的 location,以图片作为缓存对象
      root html;
      expires 1d;                 #指定缓存时间,1天
         }


(3)重启Nginx服务后,访问网址后,访问网址抓包,响应报文中有expires有效期。其中的Cache-Control:max-age=86400秒,也就是缓存一天。





相关文章
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
4376 0
|
25天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
45 3
|
2月前
|
缓存 前端开发 JavaScript
|
2月前
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
161 0
|
4月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
73 2
|
4月前
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
196 1
|
5月前
|
缓存 负载均衡 应用服务中间件
Nginx反向代理优化
教你如何做好Nginx反向代理优化
115 5
|
6月前
|
监控 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
97 1
|
6月前
|
负载均衡 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
219 1
|
7月前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。