反向代理在nginx中的子目录

我想为我的Heroku应用程序在我的VPS上设置一个反向代理( http://lovemaple.heroku.com )所以如果我访问mysite.com/blog我可以得到http://lovemaple.heroku.com中的内容

我遵循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; } 

我改变了它适合我的情况:

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

当我访问mysite.com/blog ,页面显示出来,但无法获取js / css文件(404)。
他们的链接变成了mysite.com/style.css而不是mysite.com/blog/style.css

怎么了,我该如何解决?

您需要修复HTML中的引用,nginx不负责为您做这件事。 您可以将它们设置为不知道它们所在的目录:

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

(而不是"/style.css"