还有另一个Nginx代理问题。我一直在寻找这个,尝试了很多事情。我敢肯定,这是在某个地方回答的,但是我似乎找不到或使它对我有用。
最终,我希望两个Mopidy实例在同一docker网络上运行。我需要nginx来使nginx正确寻址,例如:www.example.com/music1->第一个Mopidy实例。如果我在本地访问$ MOPIDY_IP:6680 / iris,则它应等同于浏览器中的www.example.com/music1/iris。
我设置了此配置:
location ~/music1/(.*){
set $upstream_app <MOPIDY_IP>;
set $upstream_port 6680;
set $upstream_proto http;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass $upstream_proto://$upstream_app:$upstream_port/$1;
}
这是朝着正确方向迈出的一步,但看起来该网站缺少资产。不幸的是,它正在尝试查询www.example.com/iris/.js。这是我开始杂草丛生的地方。似乎我可以代理/ iris /位置,所以:
location /iris {
proxy_pass http://<MOPIDY_IP>:6680/iris;
proxy_set_header X-Forwarded-Path music1; }
这似乎是朝正确方向迈出的又一步。现在我添加这个:
location ~/iris/ws(.*) {
# include /config/nginx/proxy.conf;
# resolver 127.0.0.11 valid=30s;
set $upstream_app <MOPIDY_IP>;
set $upstream_port 6680;
set $upstream_proto http;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass $upstream_proto://$upstream_app:$upstream_port/iris/ws$1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
似乎什么都没解决。此时,我有2个无法解决的问题。
我怎么了?这可能很明显,但是我不觉得自己在这里做什么有任何线索。所有这些都在几个Docker容器中运行。谢谢