Nginx et uWSGI: Connexion refusée et 502 Bad Gateway erreur
Essaie de configurer Nginx et uWSGI sur Ubuntu 13.10.
Lorsque j'essaie d'accéder au site, tout ce que j'obtiens est "502 Bad Gateway".
Couru apt-get install nginx uwsgi uwsgi-plugin-python3
pour installer nginx/uwsgi.
/etc/nginx/sites-enabled/page web.com:
server {
listen 80;
server_name webpage.com;
access_log /var/log/nginx/webpage.com_access.log;
error_log /var/log/nginx/webpage.com_error.log;
location / {
uwsgi_pass /var/run/webpage.com.uwsgi.socket;
include uwsgi_params;
uwsgi_param Host $host;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param SERVER_SOFTWARE nginx/$nginx_version;
}
}
/etc/uwsgi/apps-enabled/page web.com
[uwsgi]
vhost = true
plugin = python3
socket = /tmp/webpage.com.sock
master = true
enable-threads = true
processes = 2
home = /var/www/webpage.com/env
wsgi-file = /var/www/webpage.com/env/hello.py
virtualenv = /var/www/webpage.com/env
chdir = /var/www/webpage.com/env
touch-reload = /var/www/webpage.com/reload
/var/log/nginx/page web.com_error.journal
2014/01/17 16:28:58 [error] 25073#0: *13 connect() to unix:///var/run/webpage.com.uwsgi.socket failed (111: Connection refused) while connecting to upstream, client: 83.109.132.224, server: webpage.com, request: "GET /HTTP/1.1", upstream: "uwsgi://unix:///var/run/webpage.com.uwsgi.socket:", host: "webpage.com"
hello.py
est juste un simple hello world app.
Ont été aux prises avec ce pour plusieurs heures... Maintenant j'ai besoin d'aide 🙂
très probablement votre uWSGI instance n'est pas en cours d'exécution, vérifier avec un "ps aux" et cochez la case uWSGI journaux de trop
OriginalL'auteur | 2014-01-17
Vous devez vous connecter pour publier un commentaire.
En regardant les fichiers de configuration posté ici référence à la prise de nginx:
et dans uwsgi comme
/tmp/webpage.com.sock
à/var/run/webpage.com.uwsgi.socket
- Mais toujours obtenir la 502 Bad Gateway erreur...Les autorisations de fichier du fichier de socket est:
-rw-r--r-- 1 www-data www-data 0 Jan 17 14:32 /var/run/webpage.com.uwsgi.socket
et quelle est l'erreur enregistré dans nginx est error_log?
Le journal est noté dans mon premier post.
êtes-vous sûr uwsgi est en cours d'exécution? inclure la sortie de
ps -ewwf | grep uwsgi
OriginalL'auteur Paolo Casciello
Cela ne veut pas répondre à l'OP question d'origine, mais j'ai eu le même message d'erreur dans nginx,
connect() to unix:///tmp/uwsgi_dev.sock failed (13: Permission denied) while connecting to upstream
, et j'ai pu corriger par juste de redémarrer le uwsgi processus complètement. C'est un serveur de production, donc j'ai hésité à faire un redémarrage dur, mais juste le rechargement de la uwsgi processus n'a pas fait l'affaire. Espérons que l'aide à quelqu'un.OriginalL'auteur jstaab
Je me rends compte cela n'a rien à voir avec l'OP de problème, mais depuis c'est le top hit, pour que le message d'erreur dans Google, je tiens à souligner ce qui a résolu le problème pour moi.
J'ai suivi un tutoriel qui vous conseillons de mettre
uwsgi_pass 127.0.0.1:9090;
dans lenginx
configuration d'un script Python qui avait été mis en place dans leuwsgi
configuration avechttp-socket = :9090
. le journal des erreurs/var/log/nginx/error.log
a montré le problème:2015/08/13 02:16:04 [error] 12566#12566: *2 upstream prematurely closed connection while reading response header from upstream, client: ::1, server: ~^(www\.)?(.+)$, request: "GET /hello/HTTP/1.1", upstream: "uwsgi://127.0.0.1:9090", host: "kybyz"
le navigateur, quant à lui, a été de me donner l'erreur 502 Bad Gateway.il y avait deux façons (au moins) pour le fixer. la première est de changer
http-socket
dans leuwsgi
configuration de simplementsocket
(comme il s'est avéré que le tutoriel recommandé; je n'avais pas lu assez attentivement). cependant, ce ne serait plus me permettre de tester le script directement en pointant mon navigateur àhttp://127.0.0.1:9090/
, depuis le script maintenant parléuwsgi
protocole au lieu dehttp
. j'ai donc changé de retour àhttp-socket
et modifiés dans langinx
de configuration, lauwsgi_pass
ligneproxy_pass http://127.0.0.1:9090;
.OriginalL'auteur jcomeau_ictx
Généralement c'est un problème d'autorisation de fichiers, c'est à dire la uwsgi fichier de socket n'est pas lisible par le processus de nginx. Vérifiez le fichier de socket permission et son dossier parent et son grand-père dossier, etc. Vous pouvez le faire avec une seule commande (à supposer que votre nginx processus est en cours d'exécution par l'utilisateur
nginx
):OriginalL'auteur Cyker
Pour mon Python Django app sur AWS, c'est juste surchargé.
D'abord, j'ai ajouté plus de serveurs et remarqué que C-instances (de calcul) sont mieux que d'usage général (M) -instances depuis la M -cas a 66% de charge CPU exécute en tant que voler (utilisé par d'autres clients) après l'exécution de la CPU crédits.
Mais après l'exécution de l'application pour un certain temps (et après avoir le nombre de demandes entrantes cultivé 5x en courte période de temps), j'ai aussi vérifié les performances de base de données (RDS), et il était en marche à 100%. J'ai également augmenté la Base de données de la taille de l'instance à partir de 4 CPU à 8 CPU et maintenant il fonctionne à nouveau sans erreurs.
OriginalL'auteur PHZ.fi-Pharazon