Еще один nginx вопрос прокси. Я всюду искал это и перепробовал много вещей. Я уверен, что где-то есть ответ, но я не могу найти его или заставить его работать для меня.
В конечном итоге я хочу, чтобы два экземпляра mopidy работали в одной сети docker. Мне нужно nginx, чтобы nginx обратился к ним соответствующим образом ie: www.example.com/music1 -> первый экземпляр mopidy. Если я go в $ 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 проблемы, которые я не могу решить.
- Как заставить работать веб-сокеты
- Когда я нажимаю на вещи с этой страницы, мой браузер переводит меня на www.example.com/iris вместо www.example.com/music1/iris - хотя сайт виден отсюда ...
Что я не так понял? Это может быть очевидно очевидно, но я не чувствую, что имею какое-то представление о том, что я здесь делаю. Все это выполняется в паре docker контейнеров. Спасибо