美文网首页
2019-05-01 nginx 优化

2019-05-01 nginx 优化

作者: 点亮生活501 | 来源:发表于2019-05-01 15:06 被阅读0次

1. 安全优化

1.1 隐藏版本号

[root@web01 ~]# curl -I 10.0.0.7
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Wed, 01 May 2019 05:42:12 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.27
Link: <http://blog.oldgirl.com/index.php?rest_route=/>; rel="https://api.w.org/"

修改nginx配置文件实现优化
server_tokens off;

[root@web01 ~]# vim /etc/nginx/nginx.conf 
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]# curl -I 10.0.0.7
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 01 May 2019 05:43:23 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.27
Link: <http://blog.oldgirl.com/index.php?rest_route=/>; rel="https://api.w.org/"

1.2 修改用户与组

nginx运行时进程需要有用户和组的支持,用以实现对网站文件读取时进行访问控制。一般情况下,nginx服务启动后,默认用户是nobody,我们需要更改成特殊的用户名,例如 nginx ,这个用户必须是系统里事先存在的,没有需要创建

[root@web01 ~]# ps aux|grep nginx
root       1859  0.0  0.1  46404  1024 ?        Ss   13:43   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx      1860  0.0  0.2  46948  2216 ?        S    13:43   0:00 nginx: worker process

性能优化

2.1修改nginx服务的worker进程个数

在高并发环境中,许哟啊启动更多的nginx进程以保证快速响应,用以处理用户的请求,避免造成阻塞。
worker进程数量设置可以等于cpu的核数,高并发场合可以考虑进程数提高cpu核数*2

[root@web01 ~]# grep processor /proc/cpuinfo|wc -l
1     # 表示1颗cpu1核  通过  /proc/cpuinfo 可查看cpu个数及总核数   

通过top命令,然后按数字1 ,即可显示所有cpu核数


image.png
worker_processes  1;   可以修改进程数量  一般和CPU的核数设置一致;高并发可以和CPU核数2倍

2.2优化nginx服务进程均匀分配到不同CPU进行处理](优化绑定不同的Nginx进程到不同的CPU上)

worker_processes  4;
worker_cpu_affinity 0001  0010   0100   1000;
worker_cpu_affinity 就是配置nginx进程与cpu亲和力的参数,即把不同的进程分给不用的cpu核数。这里  0001  0010   0100   1000 是掩码,分别代表1、2、3、4 核cpu
由于worker_processes  进程数为4,上述配置会把 每个进程分配一核cpu处理。参数位置为main 段。

2.3 优化nginx单进程客户端连接数](调整Nginx单个进程允许的客户端最大连接数)

官方说明
Syntax: worker_connections number;
Default: worker_connections 512;
Context: events

利用worker_connections连接参数进行调整
用户最大并发连接数=worker进程数*worker连接数

2.4 优化nginx服务进程打开文件数,配置Nginx_worker进程最大打开文件数

Syntax: worker_rlimit_nofile number;
Default: — 
Context: main
利用worker_rlimit_nofile参数进行调整(65535)

2.5优化nginx服务数据高效传输模式,开启高效文件传输模式

利用sendfile on开启高效传输模式
tcp_nopush on表示将数据积攒到一定的量再进行传输
tcp_nodelay on表示将数据信息进行快速传输

Syntax: sendfile on | off;
Default: sendfile off;
Context: http, server, location, if in location

Syntax: tcp_nopush on | off;
Default: tcp_nopush off;
Context: http, server, location

2.6 优化nginx服务超时信息,优化Nginx连接参数,调整连接超时时间、

keepalive_timeout优化客户端访问nginx服务端超时时间
client_header_timeout优化服务端读请求头超时时间
client_body_timeout优化两个请求主体发送间隔超时时间
send_timeout优化两个响应信息的间隔超时时间

2.7 nginx服务上传文件限制

具体大小根据公司业务做调整,如果不清除就先设置8m吧

client_max_body_size 8m; 设置客户端请求报文主体最大尺寸 
Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location

2.8优化nginx服务与FastCGI连接缓存与缓冲信息,FastCGI相关参数调优,配合PHP引擎动态服务

优化利用FastCGI与PHP连接缓冲信息
优化利用FastCGI与PHP连接缓存信息

2.9配置Nginx gzip压缩实现性能优化,配置Nginx_gzip压缩实现性能优化

压缩优点:提升用户体验 ,节约网站带宽成本

image.png

nginx 日志优化

3.1进行日志文件轮询切割

编写脚本+定时任务
部分日志内容不进行记录,节省系统磁盘空间


image.png

对日志文件进行授权

image.png

3.2Nginx站点目录及文件URL访问控制,Nginx站点目录及文件URL访问控制

在动态解析配置前面,设置限制特定目录下扩展名文件解析
限制指定目录uri信息访问,利用禁止策略和返回错误状态码
限制用户访问,利用白名单和黑名单方式
禁止非法域名解析访问企业网站

相关文章

  • 2019-05-01 nginx 优化

    1. 安全优化 1.1 隐藏版本号 修改nginx配置文件实现优化server_tokens off; 1.2 修...

  • Nginx性能优化配置参考

    系统优化 系统内核优化参考 Nginx配置优化 Nginx配置参考 worker_processesnginx运行...

  • 综合架构之服务优化(后篇)

    主要内容: 1.nginx优化2.php优化3.安全优化 nginx服务优化 1.nginx配置文件移动,该如何启...

  • 后端技术栈

    Nginx 工作原理和优化、漏洞(下) Nginx 工作原理和优化、漏洞(下)Mysql查询性能优化的心得 前言:...

  • 2019-05-01

    2019-05-01 周国挺 字数 283 · 阅读 9 2019-05-01 2019-05-01 姓名:周国挺...

  • nginx优化

    nginx优化并发优化长连接压缩静态缓存一、并发优化nginx工作模式:主进程+工作进程 启动工作进程数量work...

  • nginx优化(二)io优化 直接IO与零拷贝

    nginx优化(二)io优化 直接io与零拷贝 nginx io相关基础配置 debug_points abort...

  • nginx的工作流程

    nginx的优化1、nginx可以从哪里优化对于nginx本身,最重要的也就是他的配置文件,在这个配置文件中,可以...

  • Nginx配置文件说明和优化

    1) nginx文件结构和配置文件说明 2) Nginx优化

  • LNMP优化

    nginx优化 nginx.conf #user nobody; worker_processes 4; #err...

网友评论

      本文标题:2019-05-01 nginx 优化

      本文链接:https://www.haomeiwen.com/subject/rgoinqtx.html