Ngnix配置晋级之路(二)----main主配置

下面是我main模块的介绍,加关注,学习更多相关内容。

main配置指的是下面几项: 

user nginx;
worker_processes = 1;
error_log  /var/log/nginx/error.log;
worker_rlimit_nofile 20000;
pid        /var/run/nginx.pid;

(1)user nginx;

    指定运行ngnix的用户为ngnix

(2)worker_processes = 1;

      启动进程数 通常跟逻辑cpu数相等,查询cpu数方法如下:

      # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
      # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
      # 查看物理CPU个数
      cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
      # 查看每个物理CPU中core的个数(即核数)
      cat /proc/cpuinfo| grep "cpu cores"| uniq
      # 查看逻辑CPU的个数
      cat /proc/cpuinfo| grep "processor"| wc -l

(3)error_log  /var/log/nginx/error.log;

     #错误日志配置 注意路径权限;指定全局错误日志的路径,错误日志可选项 有[debug|info|notice|warn|error|crit]详细的介绍在后面会补上,请看我后面的博客。

(4)worker_rlimit_nofile 2000;

#worker进程的最大打开文件限制数 如果不设置的话,这个值为操作系统的限制 你可以使用ulimit -a命令来查看  

ulimit -a

输出如下

 

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 7800

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 65535

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 7800

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

 

其中的open files 即为操作系统的最大限制数  如果nginx出现too many open files 不妨增大这个值

(5)pid        /var/run/nginx.pid;

     配置pid 文件路径,

     pid文件主要用于实现单实例运行进程。过程是这样的:

  1.      进程启动,尝试对pid文件加排它锁
  2.      如果失败则表示有一个实例在运行,退出
  3.      如果成功则表示当前是唯一的实例,getpid()的结果写入这个文件,继续运行
  4.      进程退出或崩溃,系统会自动释放排它锁
  5.      发送控制信号。例如nginx -s reload 这种命令就是获取到pid文件中的pid,来对这个pid发送信号实现的。

pid使用方法
 (a)、从容停止nginx
    kill -QUIT 6019 #nginx主进程号
    kill -QUIT cat /usr/local/nginx/logs/nginx.pid
(b)、快速停止nginx
    kill -TERM /INT nginx主进程号
    kill -TERM /INT cat /usr/local/nginx/logs/nginx.pid
(c)、强制停止所有的nginx进程
    pkill -9 nginx
(d)、平滑重启nginx
    修改了nginx的配置文件要重启nginx;重启之前要检查配置文件是否正确:
    # /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    configuration file /usr/local/nginx/conf/nginx.conf test is successful
    # kill -HUP cat /usr/local/nginx/logs/nginx.pid`
    nginx的平滑重启
    kll HUP Nginx主进程号
    或者
    kill HUP nginx.pid文件按存放路径• 

你可能感兴趣的:(Nginx)