3. Nginx服务器的高级设置

  • 针对 IPv4 的内核 7 个参数的优化

    此参数为 IPv4 有关的 Linux 内核参数。需要将这些值加入到 Linux 系统的 /etc/sysctl.conf 文件中,使用如下命令修改生效:

    #/sbin/sysctl -p

    • net.core.netdev_max_backlog
      • 当每个 网络接口接收数据包的速率比内核处理这些包的速率块时,允许发送到队列的数据包的最大数目,默认为 128.(可以设置更高)
    • net.core.somaxconn
      • 用于调节系统同时发起的 TCP 连接数 默认值 128.(在高并发情况下该数值较小会导致连接超时或重传问题。)
    • net.ipv4.tcp_max_syn_backlog
      • 此参数用于记录尚未收到客户端确认信息的连接请求最大值。128M 内存的系统默认1024.内存较为充足的情况下可增加默认值
    • net.ipv4.tcp_synack_retries
      • 用于设置内核放弃 TCP 连接之前想客户端发送 SYN+ACK 包的数量,默认为 1.
    • net.ipv4.tcp_timestamps
      • 用于设置时间戳,可以避免序列号的卷绕,针对 Nginx 建议将其关闭
      • net.ipv4.tcp_timestamps=0
    • net.ipv4.tcp_synack_retries 参数
      • 该参数用于设置设置内核放弃 TCP 连接之前想而客户端发送 SYN+ACK 包(第二次握手)的数量。一般赋值未 1 ,即 内核泛起连接之前发送一次 SYN+ACK 包
    • net.ipv4.tcp_syn_retries 参数
      • 同 net.ipv4.tcp_synack_retries
  • 针对 cpu 的 nginx 配置优化的两个指令
    • worker_processes 指令
      • 此指令用来设置 Nginx 的进程数,建议设置未内核数量的1倍或两倍
      • 赋值太多会增加主进程的调动负担,影响系统的 IO 效率。
      • worker_processes 4
    • worker_cpu_affinity 指令
      • 此指令用来附每个进程分配cpu 的工作内核
      • worker_cpu_affinity 指令的值是由几组二进制的值表示,每一组代表一个进程,每组中的每一位代表该进程使用的 cpu,1 代表使用,0 代表不使用。
      • 二进制位序排列与cpu 的顺序相反
      • 若进程数为4,cpu数为4 则:worker_cpu_affinity 0001 0010 0100 1000
      • 若进程数为8 cpu 为 4 则:worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000
      • 若进程数为4 cpu 为8 则 :worker_cpu_affinity 00000001 00000010 00000100 01000000
  • 与网络连接相关的配置的4个指令
    • keepalive_timeout 指令
      • 该指令用于设置Nginx 与客户端保持连接的超时时间
        • 第一个选项
          • 指定客户端连接保持活动的超时时间,在此时间后服务器会关闭此链接
        • 第二个选项(可选项)
          • 指定了使用 Keep-Alive 消息头保持活动的有效时间。超过时间后客户端关闭连接
        • 指令示例

          keepalive_timeout time time

    • send_timeout 指令
      • 该指令用于设置 Nginx 服务器响应客户端的超时时间,这个超时时间仅针对两个客户端和服务器之间建立连接后,某次活动之间的时间。如果这个时间后客户端没有任何活动,Nginx 就会关闭连接。

        send_time 10s

      • client_header_buffer_size 指令
        • 该指令用与设置 Nginx 服务器头部缓冲区的大小,默认 1KB。赋值可根据分页大小设置。
        • 适当的增大此指令的值,可以改善服务器对客户端的支持能力,建议4kb

          client_header_buffer_size

  • 与事件驱动模型相关的 8 个指令
    • user 指令
      • 用于指定 Nginx 服务器使用的事件驱动模型
    • worker_connections 指令
      • 该指令用于设置 Nginx 每一个工作进程的最大连接数量
      • 此指令一般设置为65535

         

         

         

         

posted @ 2019-12-25 12:01  天上的白云真白呀  阅读(190)  评论(0编辑  收藏  举报