作法:NGINX反向代理子目录多个实例

时间:2020-04-09 06:26:50

标签: nginx mopidy

还有另一个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个无法解决的问题。

  1. 我如何使网络套接字正常工作
  2. 当我单击此页面上的内容时,我的浏览器将我带到www.example.com/iris,而不是www.example.com/music1/iris-尽管可以从此处看到该站点...

我怎么了?这可能很明显,但是我不觉得自己在这里做什么有任何线索。所有这些都在几个Docker容器中运行。谢谢

0 个答案:

没有答案