文章目录
1.指定nginx 的运行身份
查看nginx的worker运行身份为nobody ,需要为其添加指定用户
useradd -d /usr/local/nginx -M -s /sbin/nologin nginx
修改nginx的配置文件,指定运行身份
vim /usr/local/nginx/conf/nginx.conf
重载nginx后查看worker的运行身份
2.优化性能相关的配置
worker进程的数量
worker进程的数量,通常应该为当前主机的cpu的物理核心数,查看当前主机的核心数量lscpu
修改配置文件中的worker数量为自动获取
vim /usr/local/nginx/conf/nginx.conf
重载nginx后查看worker运行数量,发现数量cpu数量一致了。
worker 进程绑定到指定cpu
将worker进程绑定到指定cpu上,可以提高缓存命中率
worker_cpu_affinity 0001 0010 0100 1000; 分别将worker进程绑定到1,2,3,4号CPU上
编辑配置文件
vim /usr/local/nginx/conf/nginx.conf
控制nginx的最大连接数
单个进程允许的最大连接数需要根据服务器性能和内存使用量作相应的调整。进程的最大连接数又受到linux系统进程的最大打开文件数限制。所以nginx的最大总并发连接数=worker 数量 * 单个进程最大连接数
修改连接数
vim /usr/local/nginx/conf/nginx.conf
再修改linux系统所限制的最大连接数,数量一般应大于所申请数。
vim /etc/security/limits.conf
一个应用程序能开启的最大连接数是受到限制的,内核限制>系统限制>应用软件限制。
查看内科支持的最大文件打开数
sysctl -a | grep file
查看系统支持的最大文件打开数
ulimit -a
3.nginx 平滑升级
nginx 方便地帮助我们实现了平滑升级。其原理简单概括,就是:
(1)在不停掉老进程的情况下,启动新进程。
(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
(3)新进程接受新请求。
(4)老进程处理完所有请求,关闭所有连接后,停止。
下载新版本 nginx,解压, 准备进行源码编译,
[root@server1 ~]# tar zxf nginx-1.21.1.tar.gz
[root@server1 ~]# cd nginx-1.21.1/auto
[root@server1 auto]# vim cc/gcc ##轻量化编译,注释掉debug
进行预编译和正式编译,原有的参数不能少,假如想添加其他新模块,,直接在后面添加相关配置参数即可。只编译,不安装,
[root@server1 nginx-1.21.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@server1 nginx-1.21.1]# make
备份原nginx二进制文件,期间nginx不会停止服