• nginx常用优化


    一、系统配置

    修改/etc/sysctl.conf

    net.ipv4.tcp_syncookies = 1: 开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0
    net.ipv4.tcp_tw_reuse = 1: 开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0
    net.ipv4.tcp_tw_recycle = 1: 开启TCP连接中TIME-WAIT sockets的快速回收,默认为0
    
    • 1
    • 2
    • 3

    sysctl -p #立即生效

    Linux修改文件句柄数|

    二、nginx配置

    全局配置

    worker_processes  auto;
    worker_cpu_affinity auto;
    worker_rlimit_nofile 65535;
    events {
    	use epoll;
        worker_connections  10240;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    配置项解释
    worker_processesauto有多少个CPU就开启多少个worker进程
    worker_cpu_affinityauto将工作进程自动绑定到可用 CPU。默认情况下可能多个进程跑在一个CPU上,导致Nginx进程使用硬件资源不均匀,该配置尽可能地分配不同的Nginx进程给不同的CPU处理
    worker_rlimit_nofile65535配置worker进程最大打开文件数,一般等于ulimit -n的值。且需大于等于worker_connections的值
    use epollLinux使用epoll的I/O多路复用模型,windows使用的icop
    worker_connections10240配置每个worker进程能够接受的最大并发连接数。需要设置linux系统的文件句柄数,Linux修改文件句柄数

    http配置

    http {
    	server_tokens off; 					
    	sendfile        on;
    	tcp_nopush on;  				
    	keepalive_timeout  60;
    	gzip on;
    	gzip_disable "msie6";
    	gzip_proxied any;  				    
    	gzip_min_length 1k;  				
    	gzip_comp_level 5;  				
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;							    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    配置项解释
    server_tokensoff隐藏版本号
    server_tokenson显著减少对CPU的占用
    tcp_nopushon[默认off]是TCP_CORK的一部分具体实现,优化了传输的bits效率,选项仅在使用sendfile的时候才开启
    keepalive_timeout60指定keep-alive连接持续多久,单位是秒。设置低些可以让ngnix持续工作的时间更长
    gzipon启用gzip压缩
    gzip_disablemsie6IE6对Gzip不怎么友好,不给它Gzip了
    gzip_proxiedanynginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩
    gzip_min_length1k不压缩临界值,大于1K的才压缩,一般不用改
    gzip_comp_level5压缩级别,1-10,数字越大压缩的越好,时间也越长
    gzip_typestext/css进行压缩的文件类型,缺啥补啥就行了

    server配置

    server {
    	listen       8080;
        server_name  localhost;
    
    	location /abc/ {
            proxy_read_timeout 240s;
            proxy_pass http://192.168.1.2:8088;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    配置项解释
    proxy_read_timeout240snginx从upstream读取数据包的超时时间,默认60s

    三、参考文章

    Nginx服务器高性能优化的配置——轻松实现10万并发访问量

  • 相关阅读:
    python毕业设计作品基于django框架 教室图书馆座位预约系统毕设成品(5)任务书
    go语言,yaml实现简单的workflow工作流
    Thinkpad x13 锐龙安装 Archlinux 记录
    关于单片机的分频定时器的记录
    go操作Kafka
    Request_共享数据(域对象) [JavaWeb][Servlet]
    Toxel 与 PCPC II
    NDArray源码解析及测试代码
    docker常用命令之帮助启动类命令和镜像命令
    MySQL 约束
  • 原文地址:https://blog.csdn.net/anqixiang/article/details/125467011