Nginx配置文件

作者:刘宾, [email protected]
请尊重作者著作权,转载请注明出处,谢谢!


例子

worker_processes  4;            # 工作进程数量, 建议配置成主机CPU内核数量
error_log logs/error.log debug; # 日志文件和日志级别, debug, info, error,
pid logs/nginx.pid;             # nginx 进程pid文件

events {
    #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
    use epoll;
    worker_connections 1024;    # 单工作进程支持最大连接数
}

# 一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
# worker_rlimit_nofile 65535;

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 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile     on;
    #tcp_nopush     on;
    #tcp_nodelay     on;
    keepalive_timeout  65;

    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6].";

    # lua扩展模块包路径
    lua_package_path '$prefix/lua/?.lua;$prefix/lua/lib/?.lua;;';

    # lua cache,开发模式下设为off, 发布模式下设为on
    lua_code_cache off;

    # for open HTTPS connection
    ssl on;
    ssl_certificate /home/xxx/project/resty-gateway/luamod/conf/server.crt;
    ssl_certificate_key /home/xxx/project/resty-gateway/luamod/conf/server.key;

    resolver 192.168.32.21;   # DNS server

    #设定请求缓冲
    client_header_buffer_size    128k;
    large_client_header_buffers  4 128k;

    # 设定负载均衡后台服务器列表
    upstream backend {
    #ip_hash;
    server 192.168.10.100:8080 max_fails=2 fail_timeout=30s ;
    server 192.168.10.101:8080 max_fails=2 fail_timeout=30s ;
    }

    # SSO server
    server {
        listen 8888;
        server_name  localhost;
        
        #定义服务器的默认网站根目录位置
        root html;

        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;

        # bypass all to SSO server.
        location / {
            default_type text/html;
            proxy_pass http://192.168.32.28:9090;
        }
    }

    # application server
    server {
        listen 9999;
        server_name  localhost;
       
        root /home/xxx/dnc/mdc/static;

        set $session_storage redis;
        set $session_redis_host 192.168.32.30;

        # url rules
        location /api/dnc {
            # lua extend modules
            access_by_lua_file  lua/sso/access_resty.lua;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_pass http://192.168.32.30:8090;
        }

        location /api/mdc {
            # lua extend modules
            access_by_lua_file  lua/sso/access_resty.lua;
            proxy_pass http://192.168.32.30:6091;
        }
        
        location /NginxStatus {
            stub_status on;
            access_log on;
            auth_basic "NginxStatus";
            auth_basic_user_file conf/htpasswd;
            #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
        }

        # 静态文件,nginx自己处理
        location ~ ^/(images|javascript|flash|media|static|php)/ {
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            root /home/xxx/dnc/mdc/;
            expires 10d;
        }
        
        # 静态文件,css/js
        location ~ .*.(js|css)?${ 
            expires 1h; 
        }

        location / {
            default_type text/html;
            access_by_lua_file  lua/sso/access_resty.lua;
            #定义首页索引文件的名称
            index index.php index.html index.htm;
        }

        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }

        #禁止访问 .htxxx 文件
            location ~ /.ht {
            deny all;
        }
    }
}

你可能感兴趣的:(Nginx配置文件)