Nginx配置文件说明

young 438 2021-10-18

nginx.conf

组成

  • main块 配置错误日志、进程及权限等信息

    设置worker进程的归属 用户 用户组

    #user nobody;

    指定worker进程的数量

    worker_processes 1;

    错误日志路径 后面是日志级别 debug info notice warn error crit

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    指定master进程编号存储的位置

    #pid logs/nginx.pid;

  • events块 用于配置IO模型,比如epoll,kquque,select

    events {

    ​ 设置网络IO模型

    ​ use epoll;

    ​ 单个worker进程最大连接数

    ​ worker_connections 1024;

    }

  • http块 用于控制Nginx的http进程

  • 邮件模块

  • 第三方模块

注意

  1. 每行配置的结尾需要加上分号
  2. 如果配置项值中包含语法符号,如空格,那么需要使用单引号或双引号括住配置项,否则Nginx会报语法错误
  3. 使用#来注释
  4. 单位简写
    1. K或k千字节(KiloByte,KB)
    2. M或者m兆字节(MegaByte,MB)
    3. ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天),M(月,包含30天),y(年,包含365天)

配置文件优化

# 设置worker进程的归属  用户 用户组
#user  root root;
# 指定worker进程的数量
worker_processes  1;
# 默认没有开启CPU多核配置,表示开始多核处理,01表示第一个cpu,10表示第二个CPU
worker_cpu_affinity 01 10;

# 错误日志路径 后面是日志级别 debug info notice warn error crit
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

# 指定master进程编号存储的位置
#pid        logs/nginx.pid;


events {
	# 设置网络IO模型 liunx->epoll kqueue[unix衍生系统]
	use epoll;

	# 单个worker进程最大连接数
    worker_connections  20480;
	# 最大处理的文件数
	worker_rlimit_nofile 20480;
	# 互斥锁 on|off 
	accpet_mutex off;
	
}


http {

	#全局配置
	
	# 处理方式
    include       /etc/nginx/mime.types;
	
	# 默认媒体类型
    default_type  application/octet-stream; 
	
	#日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

	# 开启高效的传输方式
    sendfile        on;
    #tcp_nopush     on;
	
	# 连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    # 导入配置文件
    #include extra/*.conf;
    server {
        listen 80;
        server_name yhsblog.cn;
        access_log off;
        error_log off;
        location / {
            proxy_pass http://yhsblog; # 选择对应的负载均衡
            proxy_read_timeout 60; # 与后端处理机timeout时间一致;该指令设置与代理服务器的读超时时间。它决定了ngixn会等待多长时间来获取请求的响应。
            proxy_connect_timeout 60; # 该指定设置与upstream server的连接超时时间,有必要记住这个时间不能超过75秒
            proxy_send_timeout 60;# 这个指定设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果发生超时,upstream没有收到新的数据,nginx会关闭连接。
        }
	}
}