keepalive_timeout
http에는 요청을 처리한 후 TCP 연결을 열어 두도록 웹 서버에 지시하는 keepalive 모드가 있습니다. 클라이언트로부터 다른 요청을 받으면 서버는 다른 연결을 설정하지 않고 이 닫히지 않은 연결을 사용합니다.
http 연결 유지, 웹 페이지의 모든 요청은 http(그림, CSS 등)이며, http 요청을 열려면 먼저 TCP 연결을 설정해야 하며, 페이지를 열고 닫아야 하는 경우 keepalive_timeout은 http 요청이 완료되었을 때 해당 tcp 연결이 유지되는 시간입니다. 이때 다른 http 요청이 오면 tcp 연결이 재사용됩니다. 새 요청이 오지 않으면 TCP 연결이 재사용됩니다. TCP 연결을 닫습니다
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; client_max_body_size 8192m; #gzip on; #include /etc/nginx/conf.d/*.conf; server { listen 80 so_keepalive=30m::; listen 443 default ssl; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/portalkey.key; #ssl_password_file /etc/nginx/ssl/ssl.pass; ssl_session_timeout 5m; ssl_protocols sslv2 sslv3 tlsv1; ssl_ciphers high:!anull:!md5; ssl_prefer_server_ciphers on; location / { proxy_request_buffering off; proxy_pass http://127.0.0.1:8011/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } location /test1_url/ { proxy_pass http://127.0.0.1:8008/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } location /test2_url/ { proxy_pass http://127.0.0.1:3000/; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; send_timeout 180; } } }
# 구성 섹션: http, 기본값 75s
keepalive_timeout 60;
send_timeout: 클라이언트로 데이터 전송 시간 제한, 기본값 60s 클라이언트가 연속 60초 내에 1바이트를 수신하지 못하고 연결이 닫힙니다
proxy_connect_timeout: nginx와 업스트림 서버 간의 연결 시간 초과
proxy_read_timeout: 업스트림 서버 데이터 수신을 위한 nginx 시간 초과, 기본값은 60초, 1바이트가 수신되지 않는 경우 60초 연속으로 연결이 닫힙니다
proxy_send_timeout: nginx는 업스트림 서버 시간 초과로 데이터를 보냅니다. 기본값은 60초입니다. 60초 연속으로 1바이트가 전송되지 않으면 연결이 닫힙니다
so_timeout:
사용자가 서버와 TCP 연결을 열 때 --> 이 연결에 오랫동안 트래픽이 없습니다(so_keepalive 시간 초과) --> 서버는 사용자가 여전히 존재하는지 확인하기 위해 탐지 패킷을 보냅니다. --> 감지 패킷이 반환되지 않으면 tcp 연결을 닫습니다.
so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]
so_keepalive=30m::10 will set the idle timeout (tcp_keepidle) to 30 minutes, leave the probe interval (tcp_keepintvl) at its system default, and set the probes count (tcp_keepcnt) to 10 probes.
위 세 가지 매개 변수 중 하나만 사용할 수 있으며 동시에 사용할 수 없습니다. 예: so_keepalive=on, so_keepalive=off 또는 so_keepalive=30s ::(탐지 패킷을 보내기 위해 데이터 패킷 없이 30초를 기다린다는 의미)
위 내용은 Nginx 시간 초과 시간 초과를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!