nginx:如何在没有重定向的情况下将域映射到另一个域中的路径?

时间:2011-12-01 19:54:58

标签: nginx

我有一个像这样的域名:

http://source.com

我需要将它映射到同一服务器上另一个域的特定网址:

http://target.com/source

这是否可以在不重定向源的情况下实现?如何在nginx的服务器指令中指定它?

谢谢!

2 个答案:

答案 0 :(得分:3)

使用proxy pass指令。例如:

server {

    listen 80;
    server_name  source.com;

location / {
    proxy_next_upstream     error timeout invalid_header http_500;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host source.com;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://target.com/source/;
    }
}

这里有关于nginx wiki的更多文档:http://wiki.nginx.org/HttpProxyModule#proxy_pass

答案 1 :(得分:0)

当您说您不想重定向时,我认为您希望“源”网址保留在地址栏中,但是要从“目标”中的“来源”文件夹中提供文件。< / p>

只要目标位于同一台服务器上,您只需指定源的根目录即可指向相关文件夹。

server {
    server_name source.com;
    root /var/www/target.com/public_html/source;
    location / {
        ...
    }
    ...
}