7
votes

Amazon AWS Communication des instances en VPC

IM au milieu du déploiement d'un serveur sur Amazon pour ma demande. J'ai donc décidé d'utiliser les instances EC2 UBUNUTU 14.04 64 bits T2.Micro forts> (gratuit). Je veux accabler le matériel plus tard après avoir testé ma candidature. Mon objectif est de créer un système de serveur préparé pour augmenter quand je veux. Donc, la conception du système ressemble à ce qui suit:

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;

        }
}


9 commentaires

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 . 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 ....


3 Réponses :


0
votes

Votre configuration devrait être de la manière suivante

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é.

REMARQUE: Veuillez éviter de laisser tout le trafic sur 22 ports dans le groupe de sécurité uniquement pour des raisons de sécurité


5 commentaires

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 , voir si vous pouvez vous connecter


curl -v http: // express_private_ip: 3000 et curl -v http: // express_private_dns_name: 3000 semble fonctionner. Donc, le problème réside dans les gues de la configuration Nginx.



-1
votes

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 / proxy_pass à cause de laquelle nginx sera reroute à http: // nodestest < / code>. Réécrivez votre configuration NGinx à ce xxx

une fois que le changement de configuration a été effectué recharge nginx à l'aide de la commande SUDO Service nginx Recharge


1 commentaires

proxy_pass http: // noeuds et proxy_pass http: // noeuds / fait même à l'intérieur emplacement / . S'il vous plaît, lisez nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass



0
votes

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 ....


0 commentaires