Obecnie próbuję nginx i nodejs z połączeniem działającym nodejs proxied w nginx. Problem w tym, że obecnie nie uruchamiam nodejs pod rootem (/), ale pod/data, ponieważ nginx powinien obsługiwać żądania statyczne jak zwykle. nodejs nie powinien wiedzieć, że jest pod/dane, ale wydaje się, że jest wymagany.Uruchamianie nodejs pod nginxem
Innymi słowy. Chcę, żeby nodejs "sądził", że działa w /. Czy to jest możliwe?
nginx config:
upstream app_node {
server 127.0.0.1:3000;
}
server {
...
location /data {
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;
proxy_pass http://app_node/data;
proxy_redirect off;
}
}
kod nodejs:
exports.routes = function(app) {
// I don't want "data" here. My nodejs app should be able to run under
// any folder
app.get('/data', function(req, res, params) {
res.writeHead(200, { 'Content-type': 'text/plain' });
res.end('app.get /data');
});
// I don't want "data" here either
app.get('/data/test', function(req, res, params) {
res.writeHead(200, { 'Content-type': 'text/plain' });
res.end('app.get /data/test');
});
};
Dobre pytanie. Nie znalazłem jeszcze rozwiązania dla tego. Mam również 2 ścieżki w mojej aplikacji;/app dla aplikacji internetowej i/static dla wszystkich plików statycznych. – andyuk
Fyi. Dodałem plik config.js i zdefiniowałem tam ustawienie wraz z różnymi dodatkami. Przynajmniej jest w jednym miejscu jako część aplikacji i nie rozprzestrzenia się w konflikcie startowym lub trudno znaleźć wrogie env. – Asken
Spróbuj umieścić znak "/" po numerze portu. To działało dla mnie. –