有5个配置段
main # 全局 配置段
events {} # 用户网络连接 配置段
http { # http连接 配置段
upstream {} # 负载均衡配 置段
server {} # 服务器 配置段
}
user root;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {}
http {
upstream name {
server 192.168.92.134:8000;
server 192.168.92.134:8001;}
server{listen 80;}
server{
listen # 监听地址和端口
listen 443; # 监听地址和端口 例子
server_name # 主机名
root # 站点根目录(document_root)
alias # 路径别名
location /static {}}
}
##############################
# 正常运行必备的配置:
##############################
user nginx nginx
# Nginx用户及组:用户 组。window下不指定
# 新建用户useradd命令:
# useradd nginx -s /sbin/nologin -M
# -s<shell>:指定用户登入后所用的shell
# -M:不要自动建立用户的登入目录
# 终端查看命令
# ps aux | grep nginx
# pid /PATH/TO/PID_FILE # 指定存储nginx主进程进程号码的文件路径
pid logs/nginx.pid # pid(进程标识符):存放路径。
# include file | mask # 指明包含进来的其它配置文件片断
include /etc/nginx/modules-enabled/*.conf;
# load_module file; # 指明要装载的动态模块
##############################
# 优化性能相关的配置:
##############################
#worker_processes number | auto
# worker_processes 8
worker_processes auto
# worker进程的数量
# 根据硬件调整,通常等于CPU数量或者2倍于CPU
# 通常应该等于小于当前主机的cpu的物理核心数
# auto:当前主机物理CPU核心数
# worker_cpu_affinity cpumask …
# worker_cpu_affinity auto [cpumask]
# worker_cpu_affinity auto
# worker_cpu_affinity 00010000 00100000 01000000 10000000
# worker与CPU进行绑定
# 如果此服务器主要是做nginx服务器的话,可是使用此配置
# 如果还有其它重要程序运行,不建议使用
# CPU MASK:
# 00000000 # 8个CPU的表示
# 00000001 # 0号CPU
# 00000010 # 1号CPU
# ... ...
# 服务器有8个CPU,nginx服务要启用4个worker进程
# 可以使用auto进行自动分配,也可以使用手动绑定
# 比如绑定后四个CPU,就是4、5、6、7号CPU(00010000、00100000、01000000、10000000)
# worker_priority number;
# 指定worker进程的nice值,设定worker进程优先级;[-20,20]
# ps axo comm,pid,psr,ni | grep nginx # 默认nice值是0
# nginx 7209 0 0
# nginx 8812 3 0
# nginx 8813 2 0
# nginx 8814 1 0
# worker_rlimit_nofile number
# worker_rlimit_nofile 204800 # 指定进程可以打开的最大描述符:数目。
# (这里小乱)
# 所有worker进程所能够打开的文件数量上限
# 一个进程至少需要打一个套接字文件,1024个进程就需要至少打开1024个套接字文件
# 3个worker进程至少需要打开3*1024=3072个文件
# 这个指令是指当一个nginx进程打开的最多文件描述符数目
# 理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除
# 但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
# 现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
# 这是因为nginx调度时分配请求到进程并不是那么的均衡
# 所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
##############################
# 用于调试及定位问题相关的配置:
##############################
# daemon on|off;
# 是否以守护进程方式运行Nignx;(CentOS 7不需要)
# master_process on|off;
# 是否以master/worker模型运行nginx;默认为on
# error_log file [level];
error_log logs/error.log # 错误日志:存放路径。
error_log logs/error.log notice # 错误日志:存放路径。
error_log logs/error.log info # 错误日志:存放路径。