Ich habe eine node.js-express-App erstellt. Standardmäßig überwacht er Port 3000. Ich habe das System auf einer EC2-Instanz gehostet und den A-Eintrag einer Domäne auf die elastische AWS-IP-Adresse gerichtet.
Ich möchte, dass HTTP-Anfragen an den Domain-Namen automatisch an Port: 3000 weitergeleitet werden oder ich möchte den Express-HTTP-Server auf Port 80 starten können. (Ich habe versucht, den Knoten http-Server zu starten auf Port 80 aber einen Fehler bekommen)
Ich kann auf die Knoten-App zugreifen, wenn ich www.myurl.com:3000 eintippe, aber ich muss in der Lage sein, diese Anforderung zum Nutzen der Endbenutzer fallen zu lassen.
Weiß jemand, wie Knoten und Ports und Domains auf meinem amazon-buntu Server alle gut zusammenspielen?
Ich fand diesen Artikel hilfreich, als ich das gleiche Problem hatte:
Am Ende habe ich authbind benutzt - nach der Konfiguration einfach:
%Vor%In meinem Bereitstellungsskript führe ich dies normalerweise aus, um sicherzustellen, dass der TCP-Verkehr auf Port 80 zu 3000 geht:
%Vor%Sie haben das gleiche Problem mit mir vor einigen Monaten. Ich habe die NodeJS-Anwendung Ссылка (Chats-Anwendung) und Ссылка (Realtime Flight) Simulator), der auf Amazon EC2 Small läuft. Ich betreibe diese Website über 3 Monate ohne Neustart, was für die Produktion mittelmäßig ist.
Ich benutze Express & amp; Nowjs läuft auf Port 8003. Dann benutze ich Haproxy als Front-End, um Port 80 in Port 8003 umzuleiten. Also, wenn du Express 3000 mit Haproxy abgehört hast, kannst du es auf express.your-domain.com laufen lassen ( Port 80).
Hier ist mein Tutorial, das NodeJS-Anwendung auf Port 80 in Amazon EC2 Ubuntu ausführt:
PS, ich benutze schon viele Methoden:
Verwenden von NGINX für Reverseproxy Ich hacke mein NGINX 0.8 mit TCP Upstream, aber scheiterte, weil es immer noch keine Web-Sockets unterstützt. Basiert auf Ссылка Es wird gesagt, dass NGINX 1.1.1 für die Proxy-Unterstützung von HTTP verwendet wird /1.1. Ich benutze das neueste NGINX 1.1.3 und es funktioniert nicht. Selbst @NGINX antwortet auf meine Tweets und sagte dort noch keine Web-Socket-Unterstützung.
Knoten-http-Proxy hat immer noch Probleme.
Authbind und sudo Sie können authbind ausführen, um nowjs auf Port 80 auszuführen oder als sudo zu installieren. Manchmal ist es mit einem Problem verbunden.
IPTABLES sudo iptables -t nat -A PREROUTING -P tcp --dport 80 -j REDIRECT --zu Ports 8003 Besser, Sie verwenden runit, um nodejs als Dienst und Benutzerberechtigung auszuführen.
HAProxy auf Websocket Socket.io macht mehrere Fehler und Handshakes, um den Benutzer zu verbinden. Es dauert ungefähr 5-10s.
Tags und Links node.js ubuntu domain-name