nginx的配置文件详解

nginx的配置文件详解

主配置文件:/usr/local/nginx/conf/nginx.conf

  • 默认启动nginx时,使用的配置文件是:安装路径/conf/nginx.conf文件
  • 可以在启动nginx时通过-c选项来指定要读取的配置文件

nginx常见的配置文件及其作用

配置文件 作用
nginx.conf nginx的基本配置文件
mime.types MIME类型关联的扩展文件
fastcgi.conf 与fastcgi相关的配置
proxy.conf 与proxy相关的配置
sites.conf 配置nginx提供的网站,包括虚拟主机常见的配置文件及其作用

nginx.conf配置详解

nginx.conf的内容分为以下几段:

  • main配置段:全局配置段。其中main配置段中可能包含event配置段
  • event {}:定义event模型工作特性
  • http {}:定义http协议相关的配置

配置指令:要以分号结尾,语法格式如下:

derective value1 [value2 …];

支持使用变量:

  • 内置变量:模块会提供内建变量定义
  • 自定义变量:set var_name value

用于调试、定位问题的配置参数

daemon {on|off}; //是否以守护进程方式运行nginx,调试时应设置为off
master_process {on|off}; //是否以master/worker模型来运行nginx,调试时可以设置为off
error_log 位置 级别; //配置错误日志
error_log里的位置和级别能有以下可选项:

位置 级别
file
stderr
syslog:server=address[,parameter=value]
memory:size
debug:若要使用debug级别,需要在编译nginx时使用–with-debug选项
info
notice
warn
error
crit
alert
emerg

正常运行必备的配置参数

user USERNAME [GROUPNAME];  //指定运行worker进程的用户和组
pid /path/to/pid_file;         //指定nginx守护进程的pid文件
worker_rlimit_nofile number;     //设置所有worker进程最大可以打开的文件数,默认为1024
worker_rlimit_core size;       //指明所有worker进程所能够使用的总体的最大核心文件大小,保持默认即可

user USERNAME [GROUPNAME]; //指定运行worker进程的用户和组

//user USERNAME [GROUPNAME];    //指定运行worker进程的用户和组
[root@nginx ~]# ps -ef |grep nginx
root       31463       1  0 21:46 ?        00:00:00 nginx: master process nginx
nginx      31464   31463  0 21:46 ?        00:00:00 nginx: worker process
root       31711   31673  0 22:03 pts/0    00:00:00 grep --color=auto nginx
修改指定运行worker进程的用户
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
user  nobody;
worker_processes  1;
[root@nginx ~]# systemctl  restart nginx
[root@nginx ~]# ps -ef | grep nginx
root        1256       1  0 22:25 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody      1257    1256  0 22:25 ?        00:00:00 nginx: worker process
root        1265    1218  0 22:28 pts/0    00:00:00 grep --color=auto nginx

//pid /path/to/pid_file;         //指定nginx守护进程的pid文件
[root@nginx ~]# find / -name nginx.pid
/usr/local/nginx/logs/nginx.pid
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        /opt/nginx.pid;
[root@nginx ~]# systemctl restart nginx
[root@nginx ~]# find / -name nginx.pid
/opt/nginx.pid

//worker_rlimit_nofile number;     //设置所有worker进程最大可以打开的文件数,默认为1024
[root@nginx ~]# ulimit -n
1024

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
user  nobody;
worker_processes  1;
worker_rlimit_nofile 65535;


[root@nginx ~]# vim /etc/security/limits.conf 
* soft nofile 65535
* hard nofile 65535
[root@nginx ~]# systemctl restart nginx
[root@nginx ~]# ulimit

//重新打开一个终端,后生效
[root@nginx ~]# ulimit -n
65535

优化性能的配置参数

worker_processes n; //启动n个worker进程,这里的n为了避免上下文切换,通常设置为cpu总核心数-1或等于总核心数
worker_cpu_affinity cpumask …; //将进程绑定到某cpu中,避免频繁刷新缓存
//cpumask:使用8位二进制表示cpu核心,如:
0000 0001 //第一颗cpu核心
0000 0010 //第二颗cpu核心
0000 0100 //第三颗cpu核心
0000 1000 //第四颗cpu核心
0001 0000 //第五颗cpu核心
0010 0000 //第六颗cpu核心
0100 0000 //第七颗cpu核心
1000 0000 //第八颗cpu核心
timer_resolution interval; //计时器解析度。降低此值,可减少gettimeofday()系统调用的次数
worker_priority number; //指明worker进程的nice值

top - 22:37:24 up 9 min,  3 users,  load average: 0.16, 0.10, 0.03
Tasks: 171 total,   1 running, 170 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3709.6 total,   3260.0 free,    219.1 used,    230.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   3264.8 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND P
   1649 nobody    20   0  114308   6232   4652 S   0.0   0.2   0:00.00 nginx   1
   1650 root      20   0       0      0      0 I   0.0   0.0   0:00.06 kworke+ 3
   1651 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworke+ 3
   1653 root      20   0   65428   4436   3772 R   0.0   0.1   0:00.07 top     3
   1654 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworke+ 0
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
user  nobody;
worker_processes  2;
worker_cpu_affinity 01 10;
[root@nginx ~]# systemctl restart nginx
top - 14:56:02 up 7 min,  3 users,  load average: 0.03, 0.03, 0.00
Tasks: 169 total,   1 running, 168 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3709.6 total,   3259.6 free,    219.5 used,    230.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   3264.3 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND P
   1634 nobody    20   0  114228   5840   4516 S   0.0   0.2   0:00.00 nginx   0
   1635 nobody    20   0  114228   5840   4516 S   0.0   0.2   0:00.00 nginx   1
   1636 root      20   0       0      0      0 I   0.0   0.0   0:00.01 kworke+ 0
   1638 root      20   0   65428   4496   3832 R   0.0   0.1   0:00.11 top     3

//worker_priority number; //指明worker进程的nice值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值