Nginx 配置文件总结

# 定义Nginx运行用户
user  root;

# Nginx进程数,设置为auto代表nginx会自己匹配,一般为CPU核心数量
worker_processes  auto;

# 错误日志路径及级别
error_log  logs/error.log notice;

# pid文件存放位置
pid        logs/nginx.pid;

# Nginx最大文件打开数
worker_rlimit_nofile   40960;

events {

#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
    use   epoll; 

#单个进程最大连接数(最大连接数=连接数*进程数)   
    worker_connections  10240; 

#在Nginx接到一个新连接通知后调用accept()来接受尽量多的连接
    multi_accept on; 
}


http {

# 隐藏nginx版本号
    server_tokens off;   

# 文件扩展名与文件类型映射表
    include       mime.types;
# 默认文件类型
    default_type  application/octet-stream;

# nginx 日志格式
log_format  main    '$remote_addr|$time_local|$request|'
                        '$status|$body_bytes_sent|$http_referer|'
                        '$http_user_agent|$http_x_forwarded_for|'
            '$upstream_addr|$upstream_status|$request_time|$upstream_response_time';

# 定义access日志,并使用上面定义的format
access_log  logs/access.log  main;


# 请求头部缓存大小
    client_header_buffer_size    4k;

# 请求缓存大小
    large_client_header_buffers  4 32k;

#允许客户端请求的最大单文件字节数  
    client_max_body_size 500m; 

#缓冲区代理缓冲用户端请求的最大字节数
    client_body_buffer_size 1024k;

#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
    proxy_headers_hash_max_size 51200;
    proxy_headers_hash_bucket_size 6400;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header request_uri $request_uri;
    proxy_set_header Host $host;

#nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_connect_timeout 90;

#后端服务器数据回传时间(代理发送超时)        
    proxy_send_timeout 90;

#连接成功后,后端服务器响应时间(代理接收超时) 
    proxy_read_timeout 90;

#设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffer_size 128k;

#proxy_buffers缓冲区,网页平均在32k以下的设置
    proxy_buffers 8 128k;

#高负荷下缓冲大小(proxy_buffers*2)
    proxy_busy_buffers_size 256k;

#高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size 256k;
    proxy_temp_path  /usr/local/nginx/proxy_temp;
    proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=content:100m inactive=1d max_size=10g;

#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。 
    sendfile        on;  

#防止网络阻塞
    tcp_nopush      on;  

#防止网络阻塞
    tcp_nodelay     on;  

#长连接超时时间,单位为秒
    keepalive_timeout  30;


#gzip模块设置
    gzip on;
#开启gzip压缩输出
    gzip_min_length 1k;
#最小压缩文件大小
    gzip_buffers 4 16k;
#压缩缓冲区
    gzip_comp_level 4;
#压缩等级
    gzip_proxied any;
        gzip_types image/jpeg image/png text/plain application/xml application/x-javascript text/javascript text/css;
#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
    gzip_vary on;

#限制请求数,除了白名单外的IP每秒最多处理8个请求
    limit_req_zone  $binary_remote_addr    zone=showjoy_req:20m rate=1r/s;
#限制连接数
    limit_conn_zone $binary_remote_addr    zone=showjoy_conn:20m;
#限制连接数,请求数的白名单
    geo $white_ip {
            ranges;
            default 0;
    #白名单ip-1
            1.1.1.1-1.1.1.2 1;
            1.1.1.1-1.1.1.2 1;
            1.1.1.1-1.1.1.2 1;
            1.1.1.1-1.1.1.2 1;
    #白名单ip-2
            1.1.1.1-1.1.1.2 1;
            1.1.1.1-1.1.1.2 1;
        }

    limit_req_whitelist geo_var_name=white_ip geo_var_value=1;
#----------------------------------
    server {

        listen  80;
        server_name *.xxx.net xxx.net *.xxx.com xxx.com *.xxx.cn xxx.cn *.xxx.com *.xxx.com.cn xxx.com.cn;
        rewrite ^(.*) http://www.xxx.com$1 permanent;
    }


    server{  

        listen 80 default;  
        server_name  _;  
        return 444;

    }

# 加载该目录下的配置
    include       /usr/local/nginx/conf/vhost/*.conf;

# 错误代码(403、404、50x)页面
    error_page 403             http://file.xxx.com/assets/errorNew.html;
    error_page 404             http://cdn1.xxx.com/assets/error.html;
    error_page 500 502 503 504 http://cdn1.xxx.com/assets/error.html;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值