4、Docker安装nginx,优化nginx万级并发

1、启动容器:

 docker run --name <容器名称> -d -p <主机端口:容器端口> <镜像名称>

 -d:后台运行

 -p:端口映射

   举例:docker run --name nginx-test -d -p 80:80 nginx

2、安装nginx

 docker run --name nginx-test -d -p 80:80 nginx

 

 

3、优化nginx万级并发

 3.1、系统层面

  1、调整同时打开文件数量
    ulimit -n 20480
  2、TCP最大连接数(somaxconn)
    echo 10000 > /proc/sys/net/core/somaxconn
  3、TCP连接立即回收、回用(recycle、reuse)
    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
    echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
  4、不做TCP洪水抵御
    echo 0 > /proc/sys/net/ipv4/tcp_syncookies

  也可以直接使用优化后的配置,在/etc/sysctl.conf中加入:

  net.core.somaxconn = 20480
  net.core.rmem_default = 262144
  net.core.wmem_default = 262144
  net.core.rmem_max = 16777216
  net.core.wmem_max = 16777216
  net.ipv4.tcp_rmem = 4096 4096 16777216
  net.ipv4.tcp_wmem = 4096 4096 16777216
  net.ipv4.tcp_mem = 786432 2097152 3145728
  net.ipv4.tcp_max_syn_backlog = 16384
  net.core.netdev_max_backlog = 20000
  net.ipv4.tcp_fin_timeout = 15
  net.ipv4.tcp_max_syn_backlog = 16384
  net.ipv4.tcp_tw_reuse = 1
  net.ipv4.tcp_tw_recycle = 1
  net.ipv4.tcp_max_orphans = 131072net.ipv4.tcp_syncookies = 0

  使用:sysctl -p 生效

 3.2、nginx层面 

  worker_processes 1;
  worker_rlimit_nofile 20000;

  events {

    use epoll;
    worker_connections 20000;

    multi_accept on;

  }

  http {

    keepalive_timeout 0;

  }

posted @ 2022-05-07 10:37  java小天地  阅读(592)  评论(1编辑  收藏  举报