nginx 설정 높 은 병행 변조
user nginx; #nginx
worker_processes auto; #nginx , cpu
( worker_processes , Nginx 。 Nginx 10M~12M 。 CPU 。)
error_log /var/log/nginx/error.log; #
pid /run/nginx.pid; # pid
events {
use epoll; epoll
( apache ,nginx ,
A)
Select、poll , ,nginx select poll
B)
Kqueue: FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 MacOS X. MacOS X kqueue 。
Epoll: Linux 2.6 。)
worker_connections 65535; Nginx 。
}
keepalive_timeout 60; keepalive 。
client_header_buffer_size 4k;
, , 1k, 1k, 。
client_header_buffer_size 4k , client_header_buffer_size “ ” 。
open_file_cache max=65535 inactive=60s;
, ,max , ,inactive 。
open_file_cache_valid 80s; 。
open_file_cache_min_uses 1;
open_file_cache inactive , , , , inactive , 。
2. 커 널 매개 변수 에 대한 최적화:
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
오픈 재사 용.TIME - WIT sockets 를 새로운 TCP 연결 에 다시 사용 할 수 있 도록 합 니 다.
net.ipv4.tcp_syncookies = 1
SYN Cookies 를 켜 면 SYN 대기 열 이 넘 칠 때 cookies 를 사용 합 니 다.
net.core.somaxconn = 262144
웹 응용 프로그램 에서 listen 함수 의 backlog 는 기본적으로 커 널 매개 변수 인 net. core. somaxconn 을 128 로 제한 하고 nginx 가 정의 하 는 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
클 라 이언 트 의 확인 정 보 를 받 지 못 한 연결 요청 의 최대 값 을 기록 합 니 다.128 M 메모리 가 있 는 시스템 의 경우 부족 한 값 은 1024 이 고 작은 메모리 의 시스템 은 128 이다.
net.ipv4.tcp_timestamps = 0
시간 스탬프 는 시리 얼 번호 의 와 인 딩 을 피 할 수 있다.1Gbps 의 링크 는 반드시 이전에 사 용 했 던 시리 얼 번 호 를 만 날 것 이다.타임 스탬프 는 커 널 로 하여 금 이러한 '이상' 데이터 패 키 지 를 받 아들 이게 할 수 있다.여 기 는 꺼 야 합 니 다.
net.ipv4.tcp_synack_retries = 1
커 널 은 엔 드 연결 을 열기 위해 SYN 을 보 내 고 앞의 SYN 에 응답 하 는 ACK 를 첨부 해 야 합 니 다.세 번 의 악수 중 두 번 째 악수 라 는 것 이다.이 설정 은 커 널 이 연결 을 포기 하기 전에 SYN + ACK 패 키 지 를 보 내 는 수량 을 결정 합 니 다.
net.ipv4.tcp_syn_retries = 1
커 널 이 연결 을 포기 하기 전에 SYN 패 키 지 를 보 내 는 수량 입 니 다.
net.ipv4.tcp_fin_timeout = 1
소켓 이 이 단 에서 닫 으 라 고 요구 하면 이 매개 변 수 는 FIN - WAIT - 2 상 태 를 유지 하 는 시간 을 결정 합 니 다.엔 드 에 오류 가 발생 할 수 있 으 며 연결 을 영원히 닫 지 않 을 수 있 으 며, 심지 어 는 의외로 컴퓨터 에 있 을 수도 있다.결 성 치 는 60 초 입 니 다.커 널 의 보통 값 은 180 초 입 니 다. 3. 이 설정 을 누 를 수 있 습 니 다. 그러나 기억 해 야 할 것 은 기계 가 가 벼 운 WEB 서버 라 하 더 라 도 대량의 소켓 으로 인해 메모리 가 넘 칠 위험 이 있 습 니 다. FIN - WAIT - 2 의 위험성 은 FIN - WAIT - 1 보다 작 습 니 다. 최대 1.5K 메모리 만 먹 을 수 있 지만 생존 기간 이 길 기 때 문 입 니 다.
net.ipv4.tcp_keepalive_time = 30
keepalive 가 시 작 될 때 TCP 가 keepalive 메 시 지 를 보 내 는 빈도 입 니 다.결 성 은 2 시간 이다.
sysctl.conf
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
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.