Aller au contenu

NGINX rewrite+proxy_pass, un spécialiste pour m'aider?

Featured Replies

Posté(e)

Salut

Ce que j'essaie de faire est que http(s):/monnas.mondomaine.com/dsm soit redirigé en interne vers http://localhost:5000

Ceci dans le cadre de ma config nginx décrite dans mon tuto

Voici ce que j'ai mis en place 

location /dsm {
    rewrite  ^/dsm(.*)  $1 break;
    proxy_pass  http://localhost:5000/;
    include proxy_defaults.conf;
}

Ca fonctionne quasiment. J'ai juste un petit lézard, pas grave mais qui me chiffonne: "http:/monnas.mondomaine.com/dsm" ne marche pas, faut impérativement ajouter un "/" final ("https:/monnas.mondomaine.com/dsm/")

J'ai bien entendu essayé d'ajouter 

rewrite  ^/dsm$  /dsm/;

sans succès: si j'active le rewrite_log, je tombe sur des erreurs "the rewritten URI has a zero length" dans l'errorlog.

Je conviens que c'est vraiment pas grave (suffit d'ajouter le "/" après tout) mais par curiosité j'aimerai savoir ce qui coince.

***EDIT***

Apparemment ca ne fonctionne pas du tout avec le site mobile par contre, je verrais ça dans un deuxième temps.

Modifié par CoolRaoul

  • 4 semaines après...
Posté(e)
  • Auteur

Finalement trouvé la solution (pas sur que ce soit la plus élégante mais mes compétences Nginx ont leur limite:

location /dsm {
    server_name_in_redirect off;
    port_in_redirect off;
    rewrite  ^/dsm$  /dsm/ redirect;
    
    rewrite  ^/dsm(.*)  $1 break;
    proxy_pass  http://localhost:5000;
    
    include proxy_defaults.conf;
    proxy_buffering off;
}

Ce sont les 3 clauses "server_name_in_redirect off", "port_in_redirect off"  et "rewrite  ^/dsm$  /dsm/ redirect" qui font le job

Si ça peut servir à d'autre..

**EDIT** 

Par contre ça ne fonctionne toujours pas avec un navigateur sur mobile, faut forcer le mode "desktop".

Et là je reste sec.

Modifié par CoolRaoul

Posté(e)
  • Auteur
Il y a 4 heures, gaetan.cambier a dit :

pourquoi tu n'utilise pas plutot un sous-domaine ? car dans ce cas, ca fonctionne

Pour utiliser un seul certificat SSL.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.