NGINX - простой обратный прокси

319
WernerCD

TLDR: я пытаюсь реверсировать прокси веб-приложение через Nginx, и оно не проходит так, как должно.

Nginx

server { listen 80; server_name dns.example.com; access_log logs/dns.access.log main;  index index.php index.html;  location / { root /var/www/com.example.dns; proxy_pass http://192.168.1.30:5380; } } 

Докер: https://hub.docker.com/r/jpillora/dnsmasq/~/dockerfile/

приложение: https://github.com/jpillora/webproc

если я подключаюсь напрямую ( http: //localnetwork.lan: 5380 ), это работает как шарм. Если я подключаюсь через обратный прокси-сервер ( http://dns.example.com/ ), изображения отображаются, но не активные части.

Что мне не хватает? Как я могу proxy_pass приложение через?

0
Одна из конечных точек HTTP - это, очевидно, Websocket. Возможно, вам придется настроить nginx для этого. Проверьте консоль браузера, чтобы узнать больше о том, что не работает. Daniel B 6 лет назад 1

2 ответа на вопрос

1
Gerard H. Pille

Добавьте директиву error_log, чтобы nginx мог сказать вам, что не так. Убедитесь, что модуль ngx_http_proxy_module включен.

0
WernerCD

Комментарий Дэниелса направил меня в правильном направлении: Websockets и «обновление» до 1.1

https://www.nginx.com/blog/websocket-nginx/

location /wsapp/ { proxy_pass http://wsbackend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }