Mam serwer Ubuntu. Użyłem certbot, aby mój serwer internetowy nginx używał https. Zmuszam wszystkie połączenia do przekierowania z portu 80 do portu 443.
Ostatnio zainstalowałem MadSonic, serwer muzyczny, który używa portu 4040.
Chciałbym zmodyfikować mój serwer nginx, abym mógł uzyskać dostęp do tego portu przez moją domenę i nie musiał otwierać więcej portów na moim routerze. Na przykład:
mydomain.com <-- Uses my web server
mydomain.com/music <-- Redirects to https://127.0.0.1:4040
Moja konfiguracja nginx jest następująca:
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
}
Mam problem z utrzymaniem bezpiecznych połączeń na serwerze muzycznym, ale po przekierowaniu do 127.0.0.1:4040 zgubiłem oryginalny certyfikat.
Czy istnieje sposób, aby zrobić to, co chcę osiągnąć?
ubuntu
https
nginx
reverse-proxy
aenon83
źródło
źródło