Ich versuche, nginx so zu konfigurieren, dass es proxy_pass
Anfragen an meine Node-Apps sendet. Frage zu StackOverflow hat viele positive Bewertungen erhalten: /programming/5009324/node-js-nginx-and-now und ich verwende die Konfiguration von dort.
(Da es sich jedoch um eine Frage zur Serverkonfiguration handelt, sollte diese auf ServerFault ausgeführt werden.)
Hier ist die Nginx-Konfiguration:
server {
listen 80;
listen [::]:80;
root /var/www/services.stefanow.net/public_html;
index index.html index.htm;
server_name services.stefanow.net;
location / {
try_files $uri $uri/ =404;
}
location /test-express {
proxy_pass http://127.0.0.1:3002;
}
location /test-http {
proxy_pass http://127.0.0.1:3003;
}
}
Verwenden eines einfachen Knotens:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3003, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3003/');
Es klappt! Überprüfen Sie: http://services.stefanow.net/test-http
Mit express:
var express = require('express');
var app = express(); //
app.get('/', function(req, res) {
res.redirect('/index.html');
});
app.get('/index.html', function(req, res) {
res.send("blah blah index.html");
});
app.listen(3002, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3002/');
Es funktioniert nicht :( Siehe: http://services.stefanow.net/test-express
Ich weiß, dass etwas los ist.
a) test-express läuft NICHT
b) text-express läuft
(und ich kann bestätigen, dass es über die Kommandozeile läuft, während ssh auf dem Server läuft)
root@stefanow:~# service nginx restart
* Restarting nginx nginx [ OK ]
root@stefanow:~# curl localhost:3002
Moved Temporarily. Redirecting to /index.html
root@stefanow:~# curl localhost:3002/index.html
blah blah index.html
Ich habe versucht, Header wie hier beschrieben zu setzen: http://www.nginxtips.com/how-to-setup-nginx-as-proxy-for-nodejs/ (funktioniert immer noch nicht)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
Ich habe auch versucht, '127.0.0.1' durch 'localhost' zu ersetzen und umgekehrt
Bitte beraten. Ich bin mir ziemlich sicher, dass ich einige offensichtliche Details vermisse und ich würde gerne mehr erfahren. Vielen Dank.
forever
oder pm2
der ihn nginx
ausführt , dann nur Proxies dazu?
nginx
Fehlerprotokoll?