Tengo un dominio personal ejecutándose en un VPS. Me gustaría configurar nginx como un proxy inverso para la aplicación node.js, pero no está funcionando. ¿Alguien podría mirar mi configuración y decirme qué estoy haciendo mal?¿Qué problema hay en esta configuración para nginx como proxy inverso para node.js?
Supongamos que mi nombre de dominio es example.com. Básicamente, me gustaría hacerlo de modo que cuando vaya a node.example.com, se envíe a la aplicación node.js. También tengo la configuración de blog.example.com y www.example.com en nginx.
Aquí está mi configuración de nginx para el proxy inverso (blog.example.com, www.example.com configuración se omite):
server { listen 80; server_name node.example.com; access_log /srv/www/example.com/logs/node-access.log; error_log /srv/www/example.com/logs/node-error.log; location/{ proxy_pass http://example.com:3000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; } }
Y aquí está mi aplicación Node.js:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(3000, "example.com");
reinicié el servidor nginx y ejecuté la aplicación node.js. Pero si voy a node.example.com, dice "node.example.com no existe o no está disponible".
No estoy seguro de qué hay de malo en mi configuración. Probé varias combinaciones, también.
Estas son las configuraciones que he intentado:
proxy_pass in nginx | hostname in node.js app http:// localhost:3000/ | ---.listen(3000, "localhost") http:// 127.0.0.1:3000/ | ---.listen(3000, "127.0.0.1") http:// node.example.com:3000/ | ---.listen(3000, "node.example.com")
también probé la siguiente configuración de nginx:
upstream nodeapp { server 127.0.0.1:3000; } server { ... location/{ proxy_pass http:// nodeapp; ... } ... }
Y tampoco funciona. ¿Qué estoy haciendo mal? He buscado en la web durante unas horas y he intentado varios enfoques, pero parece que no funcionan.
Realmente apreciaría si alguien puede ayudarme.
Gracias!
Ese mensaje de error suena más como un problema de DNS que un problema de nginx/nodo. ¿Funciona si usa la dirección IP en lugar de node.example.com? – kolbyjack
Intenté usar la dirección IP también, pero tampoco funcionó. –
@kolbyjack, en realidad tenía razón. Configuré mal el DNS. Ahora está funcionando =) ¡Gracias! –