>  기사  >  운영 및 유지보수  >  Nginx 시간 초과 시간 초과를 구성하는 방법

Nginx 시간 초과 시간 초과를 구성하는 방법

PHPz
PHPz앞으로
2023-05-12 22:07:132095검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제