nginx配置文件模板

worker_processes  2;
error_log  logs/error.log  notice;
events {
    worker_connections  8192;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #定义access日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"'
                  '$upstream_addr $upstream_response_time $request_time';
    #<连接限制模块
        #基于客户端ip地址定义一个tcp连接池,内存大小为20m
        limit_conn_zone  $http_x_forwarded_for zone=ylw_conn:20m;
        #基于客户端ip地址定义一个http连接池,内存大小为20m,限制一秒中内只允许同一个ip发起300个http请求
        limit_req_zone $http_x_forwarded_for zone=ylw_req:20m rate=300r/s;
        #超过限制的http连接返回599状态码
        limit_req_status 599;
        #错误日志级别改为warn
        limit_req_log_level warn;
    #连接限制模块>
    #<通用配置参数
        #不允许任何域名iframe,包括相同的域名,防止点击劫持 (clickjacking) 攻击
        add_header X-Frame-Options DENY;#经过测试发现,该参数配在http段时,好像不生效
        #开启高效文件传输模式
        sendfile        on;
        #设置tcp连接空闲时间为75s
        keepalive_timeout 75s;
        #隐藏nginx版本号
        server_tokens off;
        #关闭nginx目录浏览功能
        autoindex off;
        #指定客户端与服务端建立连接后发送request body的超时时间
        client_body_timeout 20s;
        #客户端向服务端发送一个完整的request header的超时时间
        client_header_timeout 10s;
        #服务端向客户端传输数据的超时时间
        send_timeout 30s;
    #>
    
    server {
        listen       80;
        server_name  ylw;
        #客户端最大传输的内容为500m
        client_max_body_size 500M;
        #取消http头部报文对下划线的拦截。默认匹配到下划线时,会去掉下划线。
        underscores_in_headers on;
        #防止xss攻击。0表示关闭浏览器xss防护机制;1表示开启,浏览器默认为1,“1; mode=block”表示检查到恶意代码时,在不渲染恶意代码
        add_header X-Xss-Protection 1;
        #不允许任何域名iframe,包括相同的域名,防止点击劫持 (clickjacking) 攻击。注:有的业务会用到iframe,注意该参数设置会不会对业务造成影响。
        add_header X-Frame-Options DENY;
        #<反向代理通用配置
            #该参数表示nginx能够捕捉到反向代理连接的错误状态码,注意该参数,下面会提到该参数
            proxy_intercept_errors on;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        #>
        #当状态码为400时,给用户返回到错误页面。这里涉及到代理的配置,如果反向代理中第一个参数没有设置,那么下面参数对反向代理的连接不生效。
        error_page   400  /server_error;
        #<连接限制
                #调用http段定义的tcp连接池,一秒钟内只允许同一个$http_x_forwarded_for值发起100个tcp连接
                limit_conn ylw_conn 100;
                #调用http段定义的http连接池,缓冲队列为50个连接
                limit_req zone=ylw_req burst=50 nodelay;
                #开启连接限速功能,最大下载速度为500K/s。该参数只能针对单个连接,如果同一个ip有多个连接,那么下载速度为n*500k
                limit_rate 500k;
                #与上面那个参数配合使用,表示超过20m才启限速
                limit_rate_after 20m;
        #>
        #防盗链,防伪造站点攻击,防恶意请求。后面的location配置会用到该变量,当http请求头中Referer为空或者为白名单中的值时,valid_referers为false。
        valid_referers none blocked 域名或ip;
        #设置错误页面
        location ^~ /server_error {
                return 500;
        }
        location / {
            root   /home/www/web;
            index  index.html index.htm;
            #html页面浏览器不缓存
            if ($request_filename ~* \.html$){
                expires     -1;
            }
            #静态资源浏览器缓存时间为永久
            if ($request_filename ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$){
                expires    max;
            }
        }
        location ^~ /xxx {
            #当invalid_referer为true时,返回403
            if ($invalid_referer){
                return 403;
            }
            proxy_pass http://127.0.0.1:9090/;
        }
    }
}

你可能感兴趣的:(nginx配置文件模板)