nginx基本配置

#user nobody;

#nginx进程数,建议设置为等于CPU总核心数
worker_processes  1;

#全局错误日志及PID文件
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {

    #epoll是多路复用IO(I/O Multiplexing)中的一种方式,
    #使用epoll的I/O 模型(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的)
    #仅用于linux2.6以上内核,可以大大提高nginx的性能
    #use   epoll; 

    #单个后台worker process进程的最大并发链接数(最大连接数=连接数*进程数)
    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;
    tcp_nopush on; #防止网络阻塞
    tcp_nodelay on;
    
    #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 30;
    fastcgi_read_timeout 30;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;

    
    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6].";
    
    upstream 10.0.1.14 { #服务器集群
        ip_hash; #会让相同的客户端ip请求相同的服务器。
        server 10.0.1.14:8089 weight=1; #权重越大分配的几率就越大
        #server 10.0.1.12:8086 weight=10; 
    }

    server {
        #监听端口
        listen       8086;
        
        #域名可以有多个,用空格隔开
        server_name  10.0.1.14;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_set_header Host $host:$server_port; #nginx服务器进行地址转发默认是80端口,代码上获取不到请求的端口8086,如有需要因此需要设置请求头为请求的端口
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://10.0.1.14;
            proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
            proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
            proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
        }

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}
本人参与过一个CMS的系统开发,市区内各学校都用这套系统,根据各校的域名访问系统得到对应的新闻等,以一台服务器的nginx的配置为例(注:将域名换成了ip,每个端口对应一个学校)
  1 #user  nobody;
  2 worker_processes  8;
  3 
  4 #error_log  logs/error.log;
  5 #error_log  logs/error.log  notice;
  6 #error_log  logs/error.log  info;
  7 
  8 #pid        logs/nginx.pid;
  9 
 10 
 11 events {
 12     worker_connections  1024;
 13 }
 14 
 15 
 16 http {
 17     include       mime.types;
 18     default_type  application/octet-stream;
 19 
 20     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 21     #                  '$status $body_bytes_sent "$http_referer" '
 22     #                  '"$http_user_agent" "$http_x_forwarded_for"';
 23 
 24     #access_log  logs/access.log  main;
 25 
 26     sendfile        on;
 27     #tcp_nopush     on;
 28 
 29     #keepalive_timeout  0;
 30     keepalive_timeout  65;
 31 
 32     #gzip  on;
 33 
 34 
 35     upstream 192.168.100.214 { #服务器集群
 36         #会让相同的客户端ip请求相同的服务器。
 37         ip_hash;
 38         server 192.168.100.214:8081;
 39         server 192.168.100.214:8082; #weight权重越大分配的几率就越大
 40         server 192.168.100.214:8083; 
 41     }
 42     
 43     server {
 44         listen       18081;
 45         server_name  192.168.100.214;
 46 
 47         #charset koi8-r;
 48 
 49         #access_log  logs/host.access.log  main;
 50 
 51         location / {
 52             root   html;
 53             index  index.html index.htm;
 54             proxy_pass http://192.168.100.214; 
 55             proxy_set_header Host $host:$server_port;
 56             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
 57             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
 58             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
 59         }
 60     }
 61     
 62     server {
 63         listen       18082;
 64         server_name  192.168.100.214;
 65         location / {
 66             proxy_pass http://192.168.100.214;
 67             proxy_set_header Host $host:$server_port;            
 68             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
 69             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
 70             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
 71         }
 72         error_page   500 502 503 504  /50x.html; 
 73     }
 74     
 75     server {
 76         listen       18083;
 77         server_name  192.168.100.214;
 78         location / {
 79             proxy_pass http://192.168.100.214;
 80             proxy_set_header Host $host:$server_port;            
 81             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
 82             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
 83             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
 84         }
 85         error_page   500 502 503 504  /50x.html; 
 86     }
 87     
 88     server {
 89         listen       18084;
 90         server_name  192.168.100.214;
 91         location / {
 92             proxy_pass http://192.168.100.214;
 93             proxy_set_header Host $host:$server_port;            
 94             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
 95             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
 96             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
 97         }
 98         error_page   500 502 503 504  /50x.html; 
 99     }
100 
101     server {
102         listen       18085;
103         server_name  192.168.100.214;
104         location / {
105             proxy_pass http://192.168.100.214;
106             proxy_set_header Host $host:$server_port;            
107             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
108             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
109             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
110         }
111         error_page   500 502 503 504  /50x.html; 
112     }
113     
114     server {
115         listen       18086;
116         server_name  192.168.100.214;
117         location / {
118             proxy_pass http://192.168.100.214;
119             proxy_set_header Host $host:$server_port;            
120             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
121             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
122             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
123         }
124         error_page   500 502 503 504  /50x.html; 
125     }
126     
127     server {
128         listen       18087;
129         server_name  192.168.100.214;
130         location / {
131             proxy_pass http://192.168.100.214;
132             proxy_set_header Host $host:$server_port;            
133             proxy_connect_timeout 6;   #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
134             proxy_read_timeout 60; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
135             proxy_send_timeout 60; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
136         }
137         error_page   500 502 503 504  /50x.html; 
138     }
}




原文地址:https://www.cnblogs.com/w-wu/p/12156496.html