AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1169461
Accepted
lostsoul6
lostsoul6
Asked: 2024-12-26 07:14:06 +0800 CST2024-12-26 07:14:06 +0800 CST 2024-12-26 07:14:06 +0800 CST

O tempo limite do upstream do Nginx expirou (110: erro desconhecido)

  • 772

Eu tenho um servidor de jogo (counter strike 2) no Oriente Médio. Estou tentando configurar um painel web para ele que está hospedado na Europa em um VPS Ubuntu 22. Este site tem uma ferramenta que permite que comandos remotos sejam executados no servidor de jogo a partir do site usando o protocolo RCON de origem.

O site usa PHP (Laravel). Quando tento usar o console RCON no site para executar comandos, recebo Nginx 504 gateway time-out.

O log do Nginx mostra o seguinte:

2024/12/25 22:21:34 [error] 1431#1431: *2081 upstream timed out (110: Unknown error) while reading response header from upstream, client: 88.196.213.143, server: some.domain.com, request: "GET /servers/1/players HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.3-fpm.sock", host: "some.domain.com", referrer: "https://some.domain.com/"

No começo, pensei que talvez houvesse um problema de conexão entre o VPS da Europa e meu servidor de jogo, então instalei o rcon-cli no meu VPS da Europa e, usando isso, consegui conectar com sucesso ao servidor de jogo. Como resultado, imaginei que o problema estivesse relacionado apenas à ferramenta PHP RCON.

Já que muitas pessoas estão usando este painel de site e não têm problemas, duvido que haja algo errado com o código também. A única coisa que me vem à mente é minha configuração Nginx.

Aqui está meu Nginx site.conf:

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    server_name some.domain.com;
    root /var/www/html/aim1/public; ##<----THIS IS THE ACTUAL PATH 

    ssl_certificate     /root/cert/some.domain.com/fullchain.pem;
    ssl_certificate_key /root/cert/some.domain.com/privkey.pem;

 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    error_page 404 /index.php;
 
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_hide_header X-Powered-By;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Aqui está meu fastcgi.conf:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  REMOTE_USER        $remote_user;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

E por último, aqui está meu arquivo nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
#
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

Alguém pode me ajudar a me livrar desse erro do Nginx?

nginx
  • 1 1 respostas
  • 57 Views

1 respostas

  • Voted
  1. Best Answer
    kodu.cloud
    2024-12-28T03:20:28+08:002024-12-28T03:20:28+08:00

    A mensagem de erro do nginx informa que o tempo limite do soquete PHP-FPM expirou ao aguardar uma resposta:

    *2081 upstream timed out (110: Unknown error) while reading response header from upstream, client: 88.196.213.143, server: some.domain.com, request: "GET /servers/1/players HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.3-fpm.sock"
    

    Ou seja, o problema ocorre no estágio de execução do código PHP - ele prossegue por mais tempo do que os timeouts definidos no nginx (60 segundos por padrão). Muito provavelmente, o script está tendo problemas para se conectar ao servidor do jogo, ou há outros problemas. Verifique o log de erros do PHP.

    Se você suspeitar que o código pode ficar em execução por muito tempo, você pode tentar aumentar os tempos limite do nginx adicionando site.confnas location ~ \.php$diretivas fastcgi_connect_timeout, fastcgi_read_timeout, fastcgi_send_timeouto número necessário de segundos: https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html

    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve