美文网首页
高性能服务器-- Nginx

高性能服务器-- Nginx

作者: Joah_l | 来源:发表于2019-09-29 11:54 被阅读0次

nginx 的配置, expire: 浏览器缓存

利用 CDN 进行内容分发

服务器集群 + 负载均衡 来支持请求量

  • 根据服务的类型合理分配服务器类型 IO 密集, 计算密集, 进程比较多

ab 压力测试;

  • ubuntu install [ sudo apt install apache2-utils ]

硬件够, 高并发文件打开数,

安装统计模块便于观察 nginx 状态

  • 重新编译 nginx; 添加模块 --add-module=~/download/ngx_http_consistent_hash-master --with-http_stub_stauts_module 之后要开启这个模块, 并配置

  • location /status {
      stub_status on;
      access_log off;
      <!-- 允许那个 ip, 其他的全部阻止 -->
      allow "ip";
      deny all
    }
    

Nginx 单机 1W 的优化

  • 建立 socket 连接

  • 打开文件, 并延 socket 放回

  • 排除问题:

    • 从系统的 dmesg 和 nginx 的 error.log 错误日志排查

      • dmesg 查询系统信息
    • 从 socket 上来优化

      1. 最大连接数, somaxconn => /proc/sys/net/core/somaxconn, 这个是系统允许的值, 将这个值调大, 10000

      2. 加快 tcp 连接的回收 ipv4_tw_recycle => 1

      3. 空的 tcp 是否允许回收利用 ipv4_tw_reuse => 1

        • ipv4_tw_recycleipv4_tw_reuse 开启快速回收 tcp 连接 和 tcp 连接重新利用, 在 Linux 服务器上可以会造成大量的 tcp 连接失败, 不建议开启
      4. 不抵御洪水 /proc/sys/net/ipv4/tcp_syncookies => 0

      • 不建议开启 2, 3, 4 项, 会出现 tcp 连接的异常失败
    • 从文件上面来优化

worker_connections [N] 一个子进程最大的连接数

在高并发的网站上使用 keepAlive_timeout 设置; 如果时间过大, 可能会造成过多的 tcp time_wait

相关文章

网友评论

      本文标题:高性能服务器-- Nginx

      本文链接:https://www.haomeiwen.com/subject/shmdyctx.html