zoukankan      html  css  js  c++  java
  • nginx调优(转)

       main    全局设置                    所有区域都生效
        server  主机设置                   
        uptream 负载均衡服务器设置       设置后端服务器的
        location    URL匹配特定位置的设置    匹配网页
    关系:
        server继承main
        location继承server
           upstream既不传也不继承

    调整内核参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    vim /etc/sysctl.conf  这里面调<br>net.ipv4.tcp_max_tw_buckets = 6000             //时间等待计时器(坚持,保活,重传)
    net.ipv4.ip_local_port_range = 1024 65000        //开启随机端口的数量32768-65535
    net.ipv4.tcp_tw_recycle = 1                 //时间等待计时器加速回收
    net.ipv4.tcp_tw_reuse = 1                  //时间等待计时器复用
    net.ipv4.tcp_syncookies = 1                //syn溢出用cook处理
    net.core.somaxconn = 262144                 //同时发起tcp的连接数量
    net.core.netdev_max_backlog = 262144          //网络收口接包速度,表示列队长度
    net.ipv4.tcp_max_orphans = 262144            //设置系统中有多连接同时连接到我的,防止简单的ddos
    net.ipv4.tcp_max_syn_backlog = 262144         //尚未收到客户端确认消息的连接的请求,128M内存=1024
    net.ipv4.tcp_synack_retries = 1             //表示内核放弃连接之前,syn+ack的包的总量
    net.ipv4.tcp_syn_retries = 1              //放弃连接之前syn的总量
    net.ipv4.tcp_fin_timeout = 1              //最后时间等待计时器的超时时间
    net.ipv4.tcp_keepalive_time = 30          //消息发送的频度(单位:小时)

    防盗链:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    在server模块下
    第一种方法:(zip和rar是必须写的)
        location ~* .(jpg|png|gif|flv|zip|rar){
            valid_referers none blocked *.han.com *.han.cn;
            if ($invalid_referer) {
            rewrite ^/ http://www.han.com/img/error.gif;//当引用了我的图片就把你引到我的错误的图片
            #return 403; //地址重写
        }
    }
    第二种方法:
        location /images {
            root /web/www/han.com
            vaild_referers none blocked *.han.com *.han.cn;
            if ($invalid_referer) {
            return 403;
        }
    }

    Fastcgi调优:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    fastcgi的调优必须在http模块里面!!!
     fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10minactive=5m;  ///usr/local/nginx/fastcgi_cache 硬盘路径 leves 目录结构等级 keys_zone关键字存储的区域 inactive非活动的删除时间分钟
     fastcgi_connect_timeout 300;     连接到后端的超时时间(防火墙new包)
     fastcgi_send_timeout 300;      完成握手之后已经建立连接,传送请求的时间
     fastcgi_read_timeout 300;      后端服务器收到的应答的时间,没有回应
     fastcgi_buffer_size 64k;       应答信息的第一个应答包头,第二个包开始才是数据
     fastcgi_buffers 4 64k;        应答请求,请求页面的大小。PHP产生的页面256k把这个数据分成464k来存储; 300k剩下的44k放到fastcgitemp。取中上值
     fastcgi_busy_buffers_size 128k;   当繁忙的时候临时开一个空间是前面的2倍就可以
     fastcgi_temp_file_write_size 128k;  写入缓存文件时缓存快的大小
     指定页面代码的缓存时间:
       fastcgi_cachek TEST;        缓存名称 表示开启
       fastcgi_cache_valid 200 302 1h;   指定应答代码的缓存时间
       fastcgi_cache_valid 301 1d;     指定应答代码的缓存时间
       fastcgi_cache_valid any 1m;     指定应答代码的缓存时间

    proxy四层代理:动态调优

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    location / {
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
        proxy_redirect off;
        proxy_set_headeer HOST $host;                 #设置后端服务器的真实IP地址
        proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded_For &proxy_add_x-forwarded_for;
         client_body_buffer_size 128k;                   #页面缓冲区的大小,本地保存的大小
        proxy_connect_timeout 90;                   后端服务器发起握手等候响应的时间
        proxy_rend_timeout 90;                     建立连接后等待后端服务器响应时间/后端等候处理的时间
         proxy_sead_timeout 90;                     规定时间内后端服务器必须响应,否则断开
        proxy_buffer_size 4k;
        proxy_buffers 4 32;                      缓冲区个数和大小
        proxy_busy_buffers_size 64k;                 系统繁忙时buffer的临时大小,官方要求proxy_buffers*2
        proxy_temp_file_write_size 64;                 proxy临时文件的大小
    }

      

    Gzip:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #传递数据的时候需要打个包,这样会让零碎的数据打包成一个包,增加我们的传输速度
    #--http_gzip_static_module   加这个模块就可以实现数据的整合和打包
        gzip  on;
            gzip_min_length 1k;         #设置压缩的页面你的最小字节数(公司页面最小值就行)
            gzip_buffers 4 16k;         #表示申请4个16k空间来压缩的缓存
            gzip_http_version 1.1;           #用来识别http的版本
            gzip_comp_level 2;          #用来指定gzip压缩级别(1最小压缩比率 效率高,9最大压缩比率,效率低)
            gzip_types text/plain application/x-javascript text/css application/xml;    #用来指定压缩类型(默认使用的html类型)
            gzip_vary on;               #让前端缓存服务器缓存,经过压缩后的数据(Varnish,Nginx-cache,Squid)

     

    events模块:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    events {
        worker_connections  8192;       #nginx 中每个进程最大的处理连接数量 只能是2的次方数
        use epoll               #使用epoll网络模型
     
    }
         网络模型:
        epoll:linux内核为处理大批量文件描述符
        select poll    标准模式
        kqueue poll    高性能模式   BSD用kqueue  linux用poll
        rtsin /dev/poll    高性能模式
  • 相关阅读:
    第一篇:spring boot 初始
    数据结构 -- 线段树
    数据结构 -- 优先队列和堆排序
    javaIO -- 流的体系设计思路、基础分类
    JavaIO -- Reader 和 Writer
    javaIO -- InputStream和OutStream
    javaIO -- File源码
    数据结构 -- 二叉树(Binary Search Tree)
    数据结构 -- 链表(LinkedList)
    数据结构 -- 栈(Stack)
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/11204975.html
Copyright © 2011-2022 走看看