续我的博文:。即nginx已经完成源码编译的安装。
一、启动nginx服务的用户的讲解
我这里的配置是:启动nginx服务的用户为nginx用户
1、首先添加nginx用户
[root@server1 ~]# useradd -M -d /usr/local/nginx/ -s /sbin/nologin nginx
[root@server1 ~]# id nginx
uid=1001(nginx) gid=1001(nginx) groups=1001(nginx)
2、其次修改nginx.conf文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf #将其中的第二行修改为如下的内容
2 user nginx nginx;
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload #修改完配置文件之后,重新加载ngin服务
3、测试:
[root@server1 ~]# ps -ef | grep nginx
root 2283 1 0 11:23 ? 00:00:00 nginx: master process /usr/localnginx/sbin/nginx
nginx 2324 2283 0 11:28 ? 00:00:00 nginx: worker process
root 2326 2037 0 11:28 pts/0 00:00:00 grep --color=auto nginx
从上面的测试结果,我们可以看到worker进程是由nginx用户开启的,而不是由之前的nobody用户开启的。
二、nginx工作的进程数量(即worker进程数的个数)的讲解
我这里的配置是:auto(即系统有几个cpu,就开启几个worker进程)
1、修改nginx.conf文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf #将其中的第三行修改为如下的内容
3 worker_processes auto;
4 worker_cpu_affinity 01 10; #这行可写可不写。01表示启用第一个CPU内核,10表示启用第二个CPU内核
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload #修改完配置文件之后,重新加载ngin服务
2、测试:
[root@server1 ~]# lscpu
CPU(s): 2
[root@server1 ~]# ps -ef | grep nginx
root 2283 1 0 11:23 ? 00:00:00 nginx: master process /usr/localnginx/sbin/nginx
nginx 2329 2283 0 11:29 ? 00:00:00 nginx: worker process
nginx 2330 2283 0 11:29 ? 00:00:00 nginx: worker process
root 2333 2037 0 11:29 pts/0 00:00:00 grep --color=auto nginx
从上面的测试结果,我们可以看到cpu的个数为2,开启的worker进程数也为2。
三、每个进程的最大连接数的讲解
每个进程的最大连接数的限制,取决于三个条件(三个条件中的值取最小的那一个):
- 内核的限制
- 系统的限制
- 服务硬件的限制
我这里配置的是:65536
1、修改nginx.conf文件(相当于修改服务硬件的限制)
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf #将其中的第13行的默认值1024该为65535
12 events {
13 worker_connections 65536;
14 }
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload #修改完配置文件之后,重新加载ngin服务
2、修改内核的限制,即修改/etc/security/limits.conf文件
[root@server1 ~]# ulimit -n
1024
[root@server1 ~]# vim /etc/security/limits.conf #在文件的最后一行,添加如下的内容
nginx - nofile 65536
#因为/etc/security/limits.conf文件中是对nginx用户进行的限制,所以需要切换到nginx用户进行查看。但是,之前添加的nginx用户是禁止登录的。所以这里无法进行验证。
3、查看系统的限制
[root@server1 ~]# sysctl -a | grep file
fs.file-max = 98240 #系统的限制为98240
fs.file-nr = 832 0 98240
fs.xfs.filestream_centisecs = 3000
四、防止网络阻塞的讲解
1、修改nginx.conf文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf #将其中的第28行的注释去掉,在29行加入下面的内容
28 tcp_nopush on;
29 tcp_nodelay on;
[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload #修改完配置文件之后,重新加载ngin服务