TLDR:我正在尝试通过 Nginx 反向代理一个 Web 应用程序,但它并没有按应有的方式通过。
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://本地网络.lan:5380)效果很好。如果我通过反向代理连接(http://dns.example.com/) 图像显示出来,但活动部分不显示。
我遗漏了什么?我该如何通过 proxy_pass 传递应用程序?
答案1
添加 error_log 指令,以便 nginx 可以告诉您哪里出错了。确保 ngx_http_proxy_module 已启用。
答案2
丹尼尔斯的评论让我找到了正确的方向: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";
}