Ситуация
Есть сервер A (77.77.77.77), на который смотрит A-запись домена foo.bar. Входящий трафик с домена на этот айпишник с портами 80 (HTTP) и 443 (HTTPS) маршрутизирует NGINX в докере и раскидывает запросы "кому надо". В этом же docker compose есть certbot, который делает какую-то магию, а именно - обновляет SSL-сертификаты к домену.
Есть сервер B (88.88.88.88), которому надо прикрутить этот же домен. Наружу торчит несколько нетипичных портов на манер 5555, 7688, 14888 и т. д.
Проблема
Как сделать так, что при обращении по HTTPS к пути foo.bar/service/name1/dashboard тот самый NGINX маршрутизировал HTTPS-трафик на сервер 2 с IP 88.88.88.88:55555, при обращении на foo.bar/service/name1/config - на 88.88.88.88:14888 и т. д.?
Корень проблемы
Это можно сделать записью в nginx.conf примерно так:
location /service/name1/dashboard {
proxy_pass https://88.88.88.88:55555/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# the headers you had before
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}
Только вот беда: смотрите на строчку
proxy_pass https://88.88.88.88:55555/
- получается, на том конце, в сервере 2 с IP 88.88.88.88, тоже должен стоять сертификат с тем же доменом, да? А как это сделать? Ведь certbot вешает сертификат лишь на один IP и только на порт 443, верно?
Как решить эту проблему?