이 글은 nginx를 최적화할 수 있는 장소를 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
worker_processes 8;
nginx프로세스 수는 cpu#의 수에 따라 지정하는 것이 좋습니다. 🎜🎜#, 일반적으로 그 배수입니다.
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
은 각 프로세스에 할당됩니다. 🎜#8 프로세스는 8#🎜🎜에 할당됩니다. #cpu 물론 여러 개를 작성하거나 프로세스를 여러 개에 할당할 수 있습니다. 🎜🎜#. worker_rlimit_nofile 102400;
#로 나눈 값이어야 합니다. 🎜🎜# 하지만 nginx은 고르게 분포되지 않으므로 ulimit n#🎜🎜 값을 유지하는 것이 가장 좋습니다. # 일관성. use epoll;
worker_connections 102400;
nginx당 최대 연결 수 서버 연결 수는 worker_processes*worker_connections입니다.
keepalive_timeout 60;
Timeout.
client_header_buffer_size 4k;
#🎜🎜보다 크기 때문에 #, 여기서는 페이징 크기로 설정되었습니다. 페이징 크기는 getconf PAGESIZE 명령을 사용하여 얻을 수 있습니다.
open_file_cache max=102400 inactive=20s;
open_file_cache_valid 30s;
이 항상 캐시에 열려 있습니다. 🎜# inactive일정 기간 내에 한 번도 사용하지 않으면 삭제됩니다. 커널 매개변수 최적화net.ipv4.tcp_max_tw_buckets = 6000
# 🎜 🎜 #timewait의 수량은 기본값은
180000입니다. net.ipv4.ip_local_port_range = 1024 65000
시스템에서 열 수 있는 포트 범위 . net.ipv4.tcp_tw_recycle = 1
활성화 timewait빠른 재활용.
net.ipv4.tcp_tw_reuse = 1
재사용을 활성화합니다. 새로운 TCP 연결에 TIMEWAIT 소켓을 재사용할 수 있습니다. net.ipv4.tcp_syncookies = 1 intable
syn cookiessynsyting 큐가 넘치면
cookies가 그것을 처리 할 수 있습니다.net.core.somaxconn = 262144webapplicationlistenfunction의
backlogdefault는 커널 매개변수의
net.somaxcon을 제공합니다. n한정 128 , nginxdefine definition NGX_LISTEN_BACKLOG기본값은 511이므로 이 값을 조정해야 합니다. net.core.netdev_max_backlog = 262144각 네트워크 인터페이스가 커널이 처리할 수 있는 것보다 더 빠르게 패킷을 수신할 때 대기열에 들어갈 수 있는 최대 패킷 수입니다. net.ipv4.tcp_max_orphans = 262144
시스템의 최대TCP
소켓 수는 사용자 파일 핸들과 연결되지 않습니다. 이 숫자를 초과하면 고아 연결이 즉시 재설정되고 경고 메시지가 인쇄됩니다. 이 제한은 단순한DoS
공격을 방지하기 위한 것입니다. 이 값을 너무 많이 의존하거나 인위적으로 이 값을 줄여야 합니다(메모리를 늘리는 경우
). net.ipv4.tcp_max_syn_backlog = 262144아직 클라이언트 확인 정보를 받지 못한 기록된 연결 요청의 최대 값입니다. 128M 메모리가 있는 시스템의 경우 기본값은 1024이고, 작은 메모리가 있는 시스템의 경우 기본값은
128입니다.
net.ipv4.tcp_timestamps = 0타임스탬프는 시퀀스 번호 줄 바꿈을 방지할 수 있습니다. 1Gbps 링크를 클릭하면 이전에 사용되었던 일련번호가 반드시 나타납니다. 타임스탬프를 사용하면 커널이 이러한 "Exception
"패킷을 허용할 수 있습니다. 여기서는 꺼야 합니다.
net.ipv4.tcp_synack_retries = 1피어에 대한 연결을 열려면 커널은 이전 SYN에 대한 응답으로 ACK와 함께 SYN을 보내야 합니다.
. 이른바 삼자악수 중 두 번째 악수다. 이 설정은 커널이 연결을 포기하기 전에 전송되는
SYN+ACK 패킷 수를 결정합니다. net.ipv4.tcp_syn_retries = 1 在内核放弃建立连接之前发送SYN包的数量。 net.ipv4.tcp_fin_timeout = 1 如果套接字由本端要求关闭,这个参数决定了它保持在FINWAIT2状态的时间。对端可以出错并永远不关 闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是, 即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN WAIT2的危 险性比FINWAIT1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。 net.ipv4.tcp_keepalive_time = 30 当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。 一个完整的内核优化配置 위 내용은 nginx를 최적화할 수 있는 장소 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요! net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1