Nginx 通用配置文件

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
worker_rlimit_nofile 65535;     #所有worker进程允许打开的文件数
worker_priority -20;            #优先级
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    use epoll;       #事件驱动模型。经测试epoll性能最优
    accept_mutex on; #惊群现象,多个睡眠的进程被同时叫醒,但只有一个进程能获取到连接,这样会影响系>统性能。防止惊群现象发生。
    multi_accept on; #设置允许同时接受多个网络连接,开启可以同时接受多个,即默认为一个工作进程只能一次接受一个新的网络连接。
    worker_connections 65535; #单个work进程允许同时打开的连接数
}

http {
    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  /var/log/nginx/access.log  main;

    open_file_cache max=10240 inactive=30s; #max设置缓存的最大个数,达到最大值时 采用LRU 算法进行管理, inactive参数配置到期时间为20秒。
    open_file_cache_valid 30s;              #缓存文件检查频率,确认经过30s之后再去看看缓存的内容是否有效,如果发生了更新,那么需要更新
    open_file_cache_min_uses 2;             #最小访问次数以将元素标记为活动使用
    open_file_cache_errors on;              #启动可以缓存在文件访问期间发生的错误


    client_header_buffer_size 16k;          #请求行+请求头的标准大小为16k
    large_client_header_buffers 4 16k;      #请求行+请求头的最大大小16k
    client_body_buffer_size  20m;           #缓存用户请求体的大小
    client_body_temp_path /tmp/nginx/client_temp 1 2; #当用户请求体body太大,存储客户端请求的临时文件的目录

    client_max_body_size  50m;              #设置客户端请求体大小(针对于上传文件)



    sendfile            on;   #文件读取高效(零拷贝),直接就在内核态之中把磁盘上的内容发到网卡上
    aio                 on;
    directio            20m;
    tcp_nopush          on;   #启用 CORK[塞子]算法,提高网络传输效率
    tcp_nodelay         on;   #禁用 Nagle 算法,提高网络实时性
    keepalive_timeout   65;   #HTTP 长连接超时时间
    keepalive_requests  1000; #keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭。默认是100
    reset_timedout_connection on; #直接以RST代替正常的四次挥手,快速释放内存
    types_hash_max_size 2048;

    server_tokens off;   #隐藏Nginx版本信息


# 防爬虫部分
    # 连接数限制
    limit_conn_log_level error;          #连接的错误日志级别
    limit_conn_status 503;               #连接错误返回的状态码
    limit_conn_zone $binary_remote_addr zone=one:10m;    #设置共享内存区域和给定键值的最大并发连接数  “none”为存储区名($binary_remote_addr = 用二进制来储存客户端的地址,1m 可以储存 32000 个并发会话 #在HTTP/2和SPDY中,每个并发请求被视为单独的连接.
    #limit_conn_zone $server_name  zone=perserver:10m;    #设置共享内存区域和给定键值的最大允许—— (服务器连接数)
    limit_conn one  10;      #每个IP 地址并发请求都被视为一个单独的连接。
    #limit_conn perserver 100; #服务器总连接数不得超过个数,超过请求的会被拒绝(默认返回状态码503)


    # 请求数限制
    limit_req_log_level error;
    limit_req_status 503;
    limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;         #每个IP并发请求被视为单独的请求数/每秒
    # limit_req_zone $server_name  zone=perserveres:10m rate=10000r/s;      #总的请求数量/每秒



#gzip 资源压缩
    gzip on;                  #启用或禁用响应的压缩
    gzip_comp_level 2;        #gzip压缩级别,级别越高消耗CPU资源越高
    gzip_http_version 1.1;    #gzip压缩协议版本
    gzip_min_length 1024;     #默认值为20,被压缩的响应的最小长度。长度仅由“ Content-Length”响应头字段确定。
    gzip_disable "MSIE[1-6]\."; #禁止对客户端对IE1~6 进行报文压缩
    gzip_types  gzip_types text/plain text/css text/xml application/javascript application/json application/xml+rss;  #gzip压缩类型可以查看文件样>(mime.types)
    gzip_buffers 32 4k;        #gzip压缩缓冲区
    #gunzip on;                            #启用访问自动解压.gz文件
    #gzip_static always;         #均会检查.gz 文件是否存在

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

# 防盗链
        valid_referers none blocked   *.biadu.com  ~\.google\. ; # 101.200.157.73(server_name),可接多个域名
                if ($invalid_referer) {      #内置变量,Referer”请求标头字段值
                return 403;   #如果blocked未包含的域名请求访问返回403状态码
        }

        location / {
                limit_req zone=perip burst=5 nodelay;  #平均每秒允许不超过 1 个请求,突发不超过 5 个请求 = [rate=r/s/+burst]
        #       limit_req zone=perserveres burst=10000;
        }

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值