0

我的目标是使用 ngnix 将一个域重定向到另一个域:

http://abc.mydomain1.com -> http://mydomain2.com:8080/test1

我尝试了以下方法:

 server {
      listen   80;
      server_name  abc.mydomain1.com;
      access_log off;
      location / {
           proxy_pass http://mydomain2.com:8080/test1/;
           proxy_set_header    Host            $host;
           proxy_set_header    X-Real-IP       $remote_addr;
           proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
           port_in_redirect off;
           proxy_connect_timeout 300;
      }
     # redirect server error pages to the static page /50x.html
 #
 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
  root   /usr/share/nginx/html;
 } }    

它适用于第一页 index.html 但是这个页面需要加载 javascripts 和 css 资源并查看源代码我注意到所有链接都是这样生成的:

<link rel="stylesheet" href="/test1/css/bootstrap.min.css"/>

如何避免 contextPath “test1”?我认为标题中缺少某些内容,但我不知道是什么:(

在此先感谢您的帮助

4

1 回答 1

0

我认为我的方法不正确,因为在这种情况下,服务器http://mydomain2.com:8080/test1/将根据上下文生成链接“test1”。因此,ngnix 运行良好。

我解决了在http://mydomain2.com:8080中为“test1”创建虚拟主机的问题

 <Host name="abc.mydomain1.com"  appBase="abc.mydomain1.com"
        unpackWARs="true" autoDeploy="true"></Host>

我将重定向更改为(删除 test1):

server {
  listen   80;
  server_name  abc.mydomain1.com;
  access_log off;
  location / {
       proxy_pass http://mydomain2.com:8080/;
       proxy_set_header    Host            $host;
       proxy_set_header    X-Real-IP       $remote_addr;
       proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
       port_in_redirect off;
       proxy_connect_timeout 300;
  }
 # redirect server error pages to the static page /50x.html
 #
 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
 root   /usr/share/nginx/html;
 } }
于 2013-06-02T16:09:17.063 回答