Actualmente estoy probando nginx y nodejs con la conexión ejecutando nodejs con proxy en nginx. El problema que tengo es que actualmente no ejecuto nodejs bajo la raíz (/) pero bajo/data ya que nginx debe manejar las solicitudes estáticas como normal. nodejs no debería tener que saber que está bajo/datos, pero parece ser necesario.Ejecutando nodejs bajo nginx
En otras palabras. Quiero que nodejs "piense" que se ejecuta en /. ¿Es eso posible?
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;
}
}
nodejs código:
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');
});
};
Buena pregunta. No he encontrado una solución para esto todavía. También tengo 2 rutas en mi aplicación;/aplicación para la aplicación web y/estática para todos los archivos estáticos. – andyuk
Fyi. Agregué un config.js y definí la configuración allí junto con una variedad de cosas. Al menos está en un lugar como parte de la aplicación y no está distribuido en confesiones de inicio o es difícil de encontrar. – Asken
Intente colocar un '/' después del número de puerto. Eso funcionó para mí. –