nginx.conf配置文件详解

1. 核心配置文件的基本结构

nginx.conf配置结果如下:

worker_processes  1;

events {
	#默认工作模式
	use epoll;
	#每个worker允许连接的客户端最大连接数
    worker_connections  1024;
}

http {
    server {
        listen       80;
        server_name  localhost;   
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

上面的配置文件是我简化过,主要是想介绍核心配置文件的基本结构:

  • event:配置工作模式以及最大连接数;
  • http:http模块相关配置;
  • server:虚拟主机配置,可以有多个
  • location:路由规则,表达式

2. 核心配置文件详解


#user  nobody;
worker_processes  2;

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

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}

  • user nobody:表示worker进程由哪个用户去执行的,默认是nobody,因为当客户端发送指令给master,而master又把指令传递给worker,所以是以nobody用户去执行的,我们可以将其更改为root,这样worker就以root用户去执行了;
    在这里插入图片描述
  • worker_processes 1:表示worker进程的数量,默认情况下为1,通常以cpu个数-1的数量设置;
  • error_log logs/error.log、error_log logs/error.log notice、error_log logs/error.log info:表示日志的存储,默认在logs文件夹下;
  • pid logs/nginx.pid:表示nginx进程号文件,默认存储在logs文件夹下;
  • events :表示事件指令块,包含工作模式和worker最大连接数的配置;
  • use epoll:默认工作模式;
  • worker_connections 1024:每个worker允许连接的客户端最大连接数;
  • http:网络传输相关的指令块;
  • include:导入外部文件的指令;
  • default_type :表示默认的type类型;
  • log_format :表示日志格式;
  • access_log :http请求日志文件;
  • sendfile on:提高文件传输性能的指令;
  • tcp_nopush on:和sendfile一起用,只有sendfile开启了,这个功能会累积到一定大小,统一发送;
  • keepalive_timeout 65:客户端连接服务器超时的时间为65秒,如果设置为0,则表示每一次请求都会新建一个连接;
  • gzip on:对html、css、js等静态文件进行压缩;
  • server:是一个http指令块,相当于一个虚拟主机,可以为这个虚拟主机配置相应的端口号,server_name可以定义一个IP或者域名,location其实就是一个路由或者页面,error_page是指当发生一些错误的时候的错误页面;

你可能感兴趣的:(Nginx)