zoukankan      html  css  js  c++  java
  • Nginx性能调优

    【调优】Nginx性能调优

     

    一.Nginx优化配置

    1.主配置文件优化:
    # vi /usr/local/nginx/conf/nginx.conf
    -----------------------------------------
    user www www;

    worker_processes 8;
    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;


    error_log /usr/local/nginx/logs/nginx_error.log crit;


    pid /usr/local/nginx/logs/nginx.pid;


    worker_rlimit_nofile 204800;


    events
    {
    use epoll;
    worker_connections 204800;
    }


    http {
    include mime.types;
    default_type application/octet-stream;


    log_format main 'remoteaddrremoteaddr−remote_user [timelocal]"timelocal]"request" '
    'statusstatusbody_bytes_sent "httpreferer"′′"httpreferer"″"http_user_agent" "$http_x_forwarded_for"';


    access_log logs/access.log main;


    charset utf-8;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 20m;


    sendfile on;
    tcp_nopush on;


    keepalive_timeout 60;


    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
    keys_zone=TEST:10m
    inactive=5m;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;


    open_file_cache max=204800 inactive=20s;
    open_file_cache_min_uses 1;
    open_file_cache_valid 30s;


    tcp_nodelay on;


    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    }
    -----------------------------------------

    注:部分配置详解:
    worker_processes 8;
    nginx进程数,建议按照cpu数目来指定,一般为它的倍数。

    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
    为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。


    worker_rlimit_nofile 204800;
    这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。
    注:这里需要设置 ulimit -SHn 204800

    use epoll;
    使用epoll的I/O模型,这个不用说了吧。

    worker_connections 204800;
    每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。

    keepalive_timeout 60;
    keepalive超时时间。

    client_header_buffer_size 4k;
    客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。

    open_file_cache max=102400 inactive=20s;
    这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。

    open_file_cache_valid 30s;
    这个是指多长时间检查一次缓存的有效信息。

    open_file_cache_min_uses 1;
    open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。

  • 相关阅读:
    django页面分类和继承
    django前端从数据库获取请求参数
    pycharm配置django工程
    django 应用各个py文件代码
    CF. 1428G2. Lucky Numbers(背包DP 二进制优化 贪心)
    HDU. 6566. The Hanged Man(树形背包DP DFS序 重链剖分)
    小米邀请赛 决赛. B. Rikka with Maximum Segment Sum(分治 决策单调性)
    区间树 学习笔记
    CF GYM. 102861M. Machine Gun(主席树)
    2016-2017 ACM-ICPC East Central North America Regional Contest (ECNA 2016) (B, D, G, H)
  • 原文地址:https://www.cnblogs.com/donghui521/p/10109553.html
Copyright © 2011-2022 走看看