Mam serwer skonfigurowany do hostowania wielu aplikacji node.js + express w wielu domenach za pośrednictwem interfejsu Ngnix. Wszystko działa świetnie, z wyjątkiem, gdy wzywa do przekierowania są wykonane z drogi ekspresowej:Dlaczego mój Nginx reverse-proxy node.js + serwer ekspresowy przekierowuje do 0.0.0.0?
res.redirect('/admin');
Wtedy przeglądarka klient zostaje przekierowany do http://0.0.0.0:8090
Wydaje się, że musi to być problem z nagłówki przekierowania wychodzi ekspresowych, ale tylko w przypadku, gdy jest to stosowne, tutaj jest plik nginx.conf dla danej domeny:
server {
listen 0.0.0.0:80;
server_name *.example.com;
access_log /var/log/nginx_example_access.log;
error_log /var/log/nginx_example_error.log debug;
# proxy to node
location/{
proxy_pass http://0.0.0.0:8090/;
proxy_redirect off;
proxy_set_header Host $proxy_host;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
W najnowszych wersjach Nginx powinieneś teraz użyć '$ http_host' zamiast' $ host'. –
@LouisChatriot Dzięki za notatkę! Zaktualizowałem odpowiedź, aby objąć bardziej aktualne wersje. –