如果我有域名,例如http://www.example.com
,我想将所有请求从http://www.example.com/test
重定向到http://www.example.com:3000
,我该如何正确执行?
我尝试了以下内容:
location /test {
proxy_pass http://www.example.com:3000;
proxy_set_header Host $host;
}
但它的作用实际上是将http://www.example.com/test
重定向到http://www.example.com:3000/test
,这不是我想要的。
我该怎么做呢?
更新
虽然Krizna
的答案有效,但它会按预期将我重定向到我的域名
但我现在想要的是我的浏览器栏http://www.example.com/test
而不是http://www.example.com:3000
。如果我理解正确,我应该设置nginx以捕获响应并通过请求的url用户发回。我该怎么办呢?
答案 0 :(得分:4)
试试这段代码
location / {
rewrite ^/test(/.*)$ http://example.com:3000$1 permanent;
proxy_set_header Host $host;
}
<强>更新强> 如果您不想重写URL,请尝试此代码..
server {
--------
server_name www.example.com;
location /test {
proxy_pass http://example.com:3000;
}
}
答案 1 :(得分:1)
proxy_redirect off
应解决您的问题。它会通过但不会更改URI。
文档:http://wiki.nginx.org/HttpProxyModule#proxy_redirect
location /test {
proxy_pass http://example.com:3000;
proxy_set_header Host $host;
proxy_redirect off;
}