IM au milieu du déploiement d'un serveur sur Amazon pour ma demande. J'ai donc décidé d'utiliser les instances EC2 upstream nodes{
server PRIVATE_IP:3000;
keepalive 8;
}
server{
listen *:80;
location / {
proxy_pass http://nodes;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
}
}
3 Réponses :
Votre configuration devrait être de la manière suivante p>
1) Ouvrez 80 ou 443 ports sur le groupe de sécurité attribué à Nginx Server. 2) Ouvrez Port TCP personnalisé 3000 sur le groupe de sécurité attribué à JavaScript Server (Express). Autoriser votre trafic sur le port 3000 à partir de Nginx Machines IP privée ou pour le groupe de sécurité attribué à NGinx Machine (AWS Console le permet) 3) Enfin à nouveau ouvert le port de NOSQL DB sur le groupe de sécurité attribué à DB Server et autoriser le trafic auprès du groupe Servers de Script Java (Express) Serveurs IP ou JAVA Script Script Servers Groupe de sécurité. P>
REMARQUE: Veuillez éviter de laisser tout le trafic sur 22 ports dans le groupe de sécurité uniquement pour des raisons de sécurité p>
Mais je permet une communication de partout, ne devrait-il pas savoir ce travail alors? Bien sûr, je modifierai les paramètres du port 22, THX pour votre préoccupation.
Os iptables peut être l'une des raisons. Essayez de rincer ou d'arrêter les iptables et vérifiez une fois pour la connectivité
Les iptables pourraient-ils vraiment être le problème sur une Amazon Ubuntu ami? Je n'ai rien changé sur les paramètres par défaut, alors je serais le premier des milliers de ce problème ...
ssh dans l'instance Nginx et test avec curl -v http: // express_private_ip: 3000 code>, voir si vous pouvez vous connecter
curl -v http: // express_private_ip: 3000 code> et
curl -v http: // express_private_dns_name: 3000 code> semble fonctionner. Donc, le problème réside dans les gues de la configuration Nginx.
me semble être un problème simple, dans lequel votre NGinx Config pour le routage à expression est configurée à tort. Vous avez manqué Ajenfinant A une fois que le changement de configuration a été effectué recharge / code> proxy_pass code> à cause de laquelle
nginx code> sera reroute à
http: // nodestest < / code>. Réécrivez votre configuration NGinx à ce
nginx code> à l'aide de la commande
SUDO Service nginx Recharge Code> P > p>
proxy_pass http: // noeuds code> et
proxy_pass http: // noeuds / code> fait même à l'intérieur
emplacement / code>. S'il vous plaît, lisez nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Cela fonctionne en fait maintenant, les configurations avaient raison tout le temps et je n'ai pas besoin d'un "Ajout A /". Je viens de créer une nouvelle instance et j'ai copié toutes les configurations dans cette nouvelle instance, mais tout semble bien fonctionner. Il y avait des problèmes de fixation depuis le début .... p>
Si votre serveur est exécuté sur Port 3000, vous devez ouvrir ce port dans le groupe de sécurité connecté à votre instance de serveur.
@Dusanbajic a raison, voir docs.aws.amazon. com / awsec2 / Dernier / userguide / ...
Sry, a fait une erreur. Je permet déjà à Port 3000 entrant dans le groupe de sécurité express. Je monte la question
netstat -a -n | Grep 3000 code>. Je suppose que vous avez une écoute express sur / liée à l'adaptateur de bouclage, 127.0.0.1, qui, bien sûr, ne serait pas accessible de n'importe où.
Je peux atteindre le serveur / instance Express de l'extérieur, mon serveur Nginx ne peut pas atteindre le serveur Express. Sur mon serveur Nginx, je peux aussi curl STH du serveur Express, donc je suis des gars il y a une mauvaise erreur avec mes paramètres nginx
Vérifiez les journaux d'erreur NGinx - tous les messages de votre demande?
Aucun journal d'erreur dans /var/log/nginx/error.log (a obtenu l'emplacement d'erreur.log à partir de nginx.conf)
Vérifiez la solution que j'ai mentionnée ci-dessous, cela devrait résoudre le problème avec NGinx ne pouvant pas se connecter à Express.
Sec, votre solution est en fait faux ... cela fonctionne également sans l'APPENDANT "/" INT qu'il confit. Peut-être que cette fonctionnalité dépend de la version de Nginx ....