Proxy inverse pour un sous-répertoire dans nginx

12

Je veux configurer un proxy inverse sur mon VPS pour mon application Heroku ( http://lovemaple.heroku.com ) Donc, si je visite, mysite.com/blogje peux obtenir le contenu dans http://lovemaple.heroku.com

J'ai suivi les instructions sur le wiki Apache .

    location /couchdb {
        rewrite /couchdb/(.*) /$1 break;
        proxy_pass http://localhost:5984;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Je l'ai changé pour s'adapter à ma situation:

    location /blog {
        rewrite /blog/(.*) /$1 break;
        proxy_pass http://lovemaple.heroku.com;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

Lorsque je visite mysite.com/blog, la page s'affiche, mais le fichier js / css ne peut pas être obtenu (404).
Leur lien devient mysite.com/style.cssmais pas mysite.com/blog/style.css.

Quel est le problème et comment puis-je le réparer?

Érable
la source

Réponses:

5

Vous devez corriger les références dans votre code HTML, nginx n'est pas responsable de le faire pour vous. Vous pouvez les définir pour être agnostiques à quel répertoire ils résident:

<link rel="stylesheet" type="text/css" href="style.css">

(au lieu de "/style.css")

Shane Madden
la source
1

Accédez à la base de données de votre wordpress et mettez-le siteurlà jour wp_optionspour http://lovemaple.heroku.comOK.

jxltom
la source