У меня есть сервер Ubuntu. Я использовал certbot, чтобы мой веб-сервер nginx использовал https. Я заставляю все соединения перенаправлять с порта 80 на порт 443.
Недавно я установил MadSonic, музыкальный сервер, который использует порт 4040.
Я хотел бы изменить свой сервер nginx, чтобы я мог получить доступ к этому порту через мой домен, и мне не нужно было открывать больше портов на моем маршрутизаторе. Например:
mydomain.com <-- Uses my web server
mydomain.com/music <-- Redirects to https://127.0.0.1:4040
Моя конфигурация nginx следующая:
server {
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name www.domain.tk domain.tk; # managed by Certbot
location /music {
proxy_pass https://127.0.0.1:4040;
}
location / {
try_files $uri $uri/ =404;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domain.tk-0001/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.tk-0001/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.domain.tk) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = domain.tk) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name www.domain.tk domain.tk;
return 404; # managed by Certbot
}
У меня проблема в том, что я хочу поддерживать безопасные соединения на музыкальном сервере, но когда я перенаправил на 127.0.0.1:4040, я потерял исходный сертификат.
Есть ли способ сделать то, что я хочу достичь?
ubuntu
https
nginx
reverse-proxy
aenon83
источник
источник