Configuré un servidor que aloja un proyecto 'angular2-webpack-starter' para el front-end y un nodejs back-end. El valor predeterminado de nginx tiene dos proxy_pass para asignar las conexiones a los lugares correctos en el servidor. CASI todo funciona como se esperaba... PERO hay un problema con el proxy de sockjs-node/info que realmente me sorprendió.
Al correr veo:
zone.js:1960 GET https://localhost:3000/sockjs-node/info?t=1490740454197 net::ERR_CONNECTION_CLOSEDLos dos apoderados son:
location ^~ /server/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-NginX-Proxy true; proxy_pass https://127.0.0.1:9000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location ^~ / { #proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }He revisado varias otras respuestas a este problema, sin éxito. Intenté agregar cosas cors en el front-end, lo que no tiene sentido y esto no tiene ningún efecto. Intenté desactivar proxy_buffering en vano (como era de esperar). Incluso agregué 'underscored_in_headers on;' en nginx, fue en vano.
Otros han usado el servidor webpack-dev-server para hacer el proxy, pero parece que nginx debería manejar esto fácilmente y cuando pase a producción sin el servidor webpack-dev-server tendré el mismo problema.
Si se ha encontrado con este problema, o tiene una idea, su ayuda sería muy apreciada.
Me tomó bastante tiempo, pero descubrí el problema. Otros pueden beneficiarse al intentar ejecutar en un sitio seguro durante el desarrollo.
El problema fue proxy_pass a ' http://127.0.0.1:3000/ '. Esto causa problemas.
Cambiando a:
contraseña_proxy https://127.0.0.1:3000/ ;
Y configurar devServer en webpack.dev.js para:
https: true, https: { key: fs.readFileSync('/etc/apache2/certwork/xxx.key'), cert: fs.readFileSync('/etc/apache2/certwork/xxx.crt'), ca: fs.readFileSync('/etc/apache2/certwork/ssl-bundle.crt') },resolvió el problema. NOTA: https: verdadero es suficiente, pero quería que la conexión fuera lo más aceptada posible, por lo tanto, agregué la clave, el certificado y las cosas ca.
Todavía verás:
Y en mi caso:
Dado que la conexión a ' https://localhost:3000 ' todavía no coincide con el nombre de dominio. ES DECIR. host local !== parke.dynazu.com. PERO todo está funcionando y cuando me aleje del servidor webpack-dev-server, esto no será un problema.