2016-12-28 211 views
0

我想重写另一个域的URL,主要议程是保持用户在相同的URL [dev.gworks.mobi]。nginx proxy_pass与URL重写 - 保存URL

http://dev.gworks.mobi/openam/* -> http://frock.gworks.mobi:8080/openam/*

location /openam { 

      proxy_pass http://frock.gworks.mobi:8080/; 
      proxy_redirect  off; 
      proxy_set_header Host $host; 
} 

这部分工作

  1. http://dev.gworks.mobi/openam/ -> http://frock.gworks.mobi:8080/ [工作原理]
  2. http://dev.gworks.mobi/openam/XUI/#login/ -> http://frock.gworks.mobi:8080/openam/XUI/#login/ [这是行不通]

的原因是http://dev.gworks.mobi/openam/XUI/#login/代理http://frock.gworks.mobi:8080//XUI/#login/ instea d的http://frock.gworks.mobi:8080/openam/XUI/#login/。我正在尝试重写URL,但我没有成功。

重写^/openam /(.*)$/$ 1最后;

任何人都可以帮助我实现我的用例吗?

+0

你的问题是混乱的 - 你想从映射的URI删除'openam'或保存呢? –

+0

'http:// dev.gworks.mobi/openam/*' - >'http://frock.gworks.mobi:8080/openam/*'这只是我的问题 –

+1

在这种情况下,尝试删除尾部斜杠proxy_pass语句 –

回答

0

下面一个是作品

location /openam { 
      proxy_pass http://frock.gworks.mobi:8080/openam; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_buffering off; 
}