Astuce : proxifier Subsonic avec NGINX

Publié le 30 août 2011 par Openwebtech @openwebtechfr

Si comme moi, vous utilisez une application qui possède un serveur Web différent de votre serveur Web préféré, NGINX, comme par, exemple, Subsonic qui utilise Jetty, vous êtes obligé de vous coltiner un port dans votre adresse du type :

http://www.mondomaine.com:4040

Or on aimerait bien accéder à Subsonic avec un petit sous-domaine comme :

http://musique.mondomaine.com

Et c’est là qu’on est chanceux d’utiliser NGINX, car avant d’être un serveur Web c’est aussi un serveur proxy. Configurer un virtual host pour Subsonic dans ce cas là va être très rapide et ce sans devoir rajouter beaucoup de choses:

server {
        listen 80;
        server_name musique.mondomaine.com; #name server

        location / {
                proxy_pass      http://127.0.0.1:4040;
                proxy_redirect  off;
                proxy_set_header        Host            $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

}

Et voilà le tour est joué.

Une petite analyse quand même de ce que l’on vient de faire :

Il faut renseigner l’adresse du serveur (127.0.0.1 si Subsonic est sur le même serveur) et le port sur lequel fonctionne l’application, ici 4040 qui est le port par défaut de Subsonic :

proxy_pass     http://127.0.0.1:4040;

Ensuite on indique que l’on interdit toute les redirection non voulue par :

proxy_redirect     off;

Puis on indique que l’on veut être sur l’host défini dans l’entête HTTP, puis que l’on transmet à l’adresse « réelle » de destination :

proxy_set_header      Host $host;
proxy_set_header      X-Real-IP      $remote_addr;
proxy_set_header      X-Forwarded-For      $proxy_add_x_forwarded_for;

Pour plus de précisions je vous renvoie vers la documentation officielle !

Vous pouvez donc désormais ouvrir votre Subsonic sur une adresse beaucoup plus simple à retenir !