Nginx 在高并发下如调优?看完这篇就够了!

本文介绍了如何通过一系列配置优化Nginx以应对高并发场景,包括隐藏版本号、修改用户与组、配置网页缓存、日志切割、设置连接超时、调整进程数、开启网页压缩、防止盗链以及FPM参数优化等措施,旨在提升服务器的安全性和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习一下:

在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的 HTTP 服务器软件——Nginx

  1. 轻量级体现在低系统资源消耗方面,所占用内存较小

  2. 在连接高并发的情况下,Nginx 是 Apache 服务很不错的替代品,其应对 HTTP 并发连接的高性能处理能力(单台物理服务器可支持 30000~50000 个并发请求)也是其另外一个重要的优点


一、你用 Nginx 做过哪些关于配置(优化)?

默认的 Nginx 安装参数只提供最基本的服务,还需要我们继续深入优化才能发挥出服务器最大的作用,适应生产环境

①隐藏版本号

在生产环境中,需要隐藏 Nginx 的版本号,避免黑客根据特定的版本号进行攻击
比如你没有及时更新,版本号又暴露在外面,漏洞总是会被人慢慢找出来的
举个例子,比如市场上那么多的破解版本软件资源
--
vim /usr/local/nginx/conf/nginx.conf
server_tokens off;		//关闭版本号
--
systemctl restart nginx.service
curl -I http://[Nginx服务器IP]		//查看版本号信息
#curl的作用是发出网络请求,然后获取数据,“-I”选项是只显示服务器返回的HTTP头部信息

----
还有一种方法,相当于“修改”版本号,“混淆”黑客?
vim /opt/nginx-1.12.0/src/core/nginx.h
#define NGINX_VERSION "1.0.0"				//修改版本号
#define NGINX_VER "IIS" NGINX_VERSION		//修改服务器类型,IIS代表是windows类型
--
保存退出来,重新进行编译编译安装,然后再把之前关闭版本号的“off”改成“on”,打开显示版本号配置,显示出我们设置的版本号来混淆黑客

②修改用户与组

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

--
1.之前我们在编译安装Nginx服务中,一般创建运行用户与组是为nginx,以便其更准确地控制其访问权限
2.如果我们在访问nginx的时候全部都是nobody用户,有些缓冲区加载之类的请求可能会因为权限问题而被拒绝,导致前端不能正常查看到访问信息

--
补充一下nobody的意义:
1.nobody在Linux中是一个不能登录的账号,apache、nginx等都会采用一些特殊的账号来运行,可以防止程序本身有安全问题时,不会被黑客获取root权限
2.nobody是一个普通用户,非特权用户,使用nobody用户名的目的是使人和人都可以登录系统,但是其UID和GID不提供任何权限,即只能访问人人皆可读写的文件(权限最小)
3.服务器向外服务,即我们访问服务器时,会以nobody的身份登录
4.nobody就是一个普通账户,默认登录shell为'/sbin/nologin',无法直接登录系统,黑客登录了也很难通过漏洞来破坏服务器
5.这个用户的权限配置很低,某种意义上具有较高安全性,一切都只给最低权限,这就是nobody存在的意义

----
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;

③配置网页缓存时间

1.当Nginx将网页
Nginx是一款高性能的HTTP和反向代理服务器,其配置可以显著提升网站的性能和稳定性。以下是一些常见的Nginx配置方法: 1. **整worker进程数**: Nginx使用多个worker进程来处理请求,worker进程数的配置可以通过`worker_processes`指令进行设置。通常情况下,将其设置为CPU核心数是一个不错的选择。 ```nginx worker_processes auto; ``` 2. **整worker连接数**: 每个worker进程可以处理的最大连接数可以通过`worker_connections`指令进行设置。默认值通常为512,可以根据实际情况进行整。 ```nginx events { worker_connections 1024; } ``` 3. **启用Gzip压缩**: 启用Gzip压缩可以减少传输的数据量,从而提高页面加载速度。可以通过`gzip`指令进行配置。 ```nginx http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; } ``` 4. **配置缓存**: 配置缓存可以减少对后端服务器的请求次数,从而提高性能。可以通过`proxy_cache`指令进行配置。 ```nginx http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { location / { proxy_cache my_cache; proxy_pass http://backend; } } } ``` 5. **化日志记录**: 日志记录会消耗一定的系统资源,可以通过减少日志记录频率或关闭不必要的日志来化性能。 ```nginx http { access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; } ``` 6. **启用keepalive**: 启用keepalive可以减少TCP连接的建立次数,从而提高性能。可以通过`keepalive`指令进行配置。 ```nginx http { upstream backend { server backend1.example.com; server backend2.example.com; keepalive 16; } } ``` 7. **限制请求速率**: 通过限制请求速率,可以防止恶意攻击和过载。可以通过`limit_req`指令进行配置。 ```nginx http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location / { limit_req zone=one burst=5; } } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值