nginx url重写内部位置

时间:2013-11-30 14:55:54

标签: regex url-rewriting nginx

我有两个应用程序运行在8080& 5999个端口。我想使用nginx将两个应用程序代理为/rss& /demo

但我遇到的问题是css,javascript没有加载。

location /rss {
  rewrite ^/rss(.*) /$1 break;
  proxy_pass http://localhost:8080/;
  proxy_redirect off;
}

location /demo {
  rewrite ^/demo(.*)$ /$1 break;
  proxy_pass http://localhost:5999/;
  proxy_redirect off;
}

有人可以帮我纠正这个......

1 个答案:

答案 0 :(得分:0)

首先,我认为下面的内容有点整洁(避免代理请求中出现双斜线):

location /rss/ {
  rewrite ^/rss/(.*) /$1 break;
  proxy_pass http://localhost:8080;
  proxy_redirect off;
}

location /demo/ {
  rewrite ^/demo/(.*)$ /$1 break;
  proxy_pass http://localhost:5999;
  proxy_redirect off;
}

其次,您需要确保正确地在HTML中引用您的CSS等。

如果在代理之前在HTML中引用了CSS文件,那么:

http://localhost:8080/styles/application.css

然后你需要以某种方式在这样的HTML中进行引用,以便在代理后考虑新位置(包括子目录):

http://notproxied.com/rss/styles/application.css