152 votes

La connexion a échoué (111: Connexion refusée) lors de la connexion à l'amont.

Je rencontre des erreurs 502 Gateway lors de l'accès à un fichier PHP dans un répertoire (http://example.com/dev/index.php). Les journaux indiquent simplement ceci :

2011/09/30 23:47:54 [error] 31160#0: *35 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "domain.com"

Je n'ai jamais rencontré cela auparavant. Quelle est la solution pour ce type d'erreur 502 Gateway ?

Voici le nginx.conf :

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Paramètres de base
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    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;

    ##
    # Paramètres de journalisation
    ##

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

    ##
    # Paramètres de compression Gzip
    ##

    gzip on;
    gzip_disable "msie6";

    # 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/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Configurations d'hôtes virtuels
    ##

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

1 votes

'Connexion refusée' signifie que le backend n'écoute pas sur le port 9000 ou que sa file d'attente est pleine. Ce problème est lié au backend lui-même. Êtes-vous capable de faire un telnet sur localhost 9000? Vous devriez aussi vérifier vos logs backend et php.

0 votes

Mise à jour de mon post. Je n'ai pas pu me connecter en telnet à localhost 9000.

0 votes

La même erreur à laquelle je faisais face, Cela entrez une description de lien ici peut vous aider

1voto

TheClockTwister Points 151

Juste au cas où quelqu'un essaie désespérément de résoudre son problème pour réaliser qu'il n'y a rien de mal avec sa configuration de proxy inversé:

Dans mon cas, l'erreur persistait même après avoir supprimé toutes les directives location sauf une qui fournit uniquement du contenu statique.

Le message d'erreur était causé parce que Nginx n'était pas capable de journaliser son journal vers le serveur syslog:

access_log syslog:server=10.0.1.48:514,facility=local4,tag=nginx,severity=debug,nohostname main;

Résumé:

Si vous utilisez un serveur de journalisation syslog, assurez-vous qu'il est disponible. Pour tester si l'erreur provient de la configuration de journalisation, mettez en commentaire toutes les configurations de journalisation afin que Nginx retombe sur le schéma de journalisation natif.

J'espère que cela fera gagner du temps à certaines personnes qui déboguent une configuration de proxy inversé entièrement valide, juste pour trouver l'erreur ailleurs :D

1voto

Mojtaba Rezaeian Points 271

Le même problème m'est arrivé et j'ai finalement découvert que firewalld bloquait les ports nécessaires après l'installation et que j'avais oublié d'ouvrir les ports dans le pare-feu (port 9000 dans vos journaux).

-3voto

Juste aujourd'hui, j'ai rencontré ce problème et pour moi, c'était un problème de mémoire insuffisante pendant une période de charge élevée. Augmenter le type d'instance a résolu le problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X