Em primeiro lugar, o Nginx é o seu terminador de SSL aqui. Isso significa que você não precisa executar seu aplicativo em ambos os modos - HTTP e HTTPS. HTTP seria suficiente.
Então, para o seu aplicativo, a configuração poderia ser assim:
server {
listen 192.168.1.12:80;
server_name myapp.domain.com;
location / {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
A diretiva acima redirecionará todas as solicitações HTTP para HTTPS.
server {
listen 192.168.1.12:443;
server_name myapp.domain.com;
ssl on;
ssl_certificate [...];
ssl_certificate_key [...];
location / {
proxy_pass https://192.168.1.43:3000;
}
}
Eu escolhi a porta 3000 no proxy_pass aqui para apontar para a versão HTTP do seu aplicativo. Você precisaria desativar a re-indicação do seu aplicativo para a porta 3001.
Em relação ao seu redirecionamento music.domain.com - para HTTP, você usa a porta 4040 no parâmetro proxy_pass, em HTTPS você não usa. Eu suponho que o servidor madsonic só escuta na porta 4040, então uma configuração poderia ser assim:
server {
listen 192.168.1.12:80;
server_name music.domain.com;
location / {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
server {
listen 192.168.1.12:443;
server_name music.domain.com;
ssl on;
ssl_certificate [...];
ssl_certificate_key [...];
location / {
proxy_pass https://192.168.1.35:4040;
}
}
Espero que isso ajude.