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ąć?

aenon83
źródło