Proxy reverso para um subdiretório no nginx

12

Desejo configurar um proxy reverso no meu VPS para meu aplicativo Heroku ( http://lovemaple.heroku.com ). Portanto, se eu visitar mysite.com/blog, posso obter o conteúdo em http://lovemaple.heroku.com

Eu segui as instruções no wiki do 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;
    }

Eu mudei para se adequar à minha situação:

    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;
    }

Quando visito mysite.com/blog, a página é exibida, mas o arquivo js / css não pode ser obtido (404).
O vínculo deles se torna, mysite.com/style.cssmas não mysite.com/blog/style.css.

O que há de errado e como posso corrigi-lo?

Bordo
fonte

Respostas:

5

Você precisa corrigir as referências em seu HTML, o nginx não é responsável por fazer isso por você. Você pode configurá-los para serem agnósticos em qual diretório eles residem:

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

(em vez de "/style.css")

Shane Madden
fonte
1

Ir ao banco de dados do seu wordpress, e atualização siteurlno wp_optionsque http://lovemaple.heroku.comé OK.

jxltom
fonte