免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3658 | 回复: 7

[Web] nginx反向代理的一个疑问 [复制链接]

论坛徽章:
0
发表于 2009-08-29 16:17 |显示全部楼层
5可用积分
例如有三台机器
192.168.1.1   用nginx作反向代理
192.168.1.2  用nginx做web
192.168.1.3  用nginx做web

现在有www.abc.com和www.cba.com两个域名同时解析到192.168.1.1这台机器上
我的问题是,如何在192.168.1.1上实现这种要求:
即当用户访问是www.abc.com开头的连接时 proxy_pass http://192.168.1.2
当用户访问www.cba.com开头的连接时 proxy_pass http://192.168.1.3
请问这样能实现吗,如果能,又该怎么写配置文件?谢谢!

最佳答案

查看完整内容

正好我有一个和你类似的需求,采用类似下面的方法已经成功。其中 optimize_server_names 和 server_name_in_redirect 两个选项很关键[ 本帖最后由 suncle 于 2009-8-29 21:32 编辑 ]

论坛徽章:
0
发表于 2009-08-29 16:17 |显示全部楼层
正好我有一个和你类似的需求,采用类似下面的方法已经成功。

其中 optimize_server_names 和 server_name_in_redirect 两个选项很关键


optimize_server_names off;
server_name_in_redirect off;

server {
    listen   80;
    server_name  www.abc.com  www.cba.com;

    access_log  /var/log/nginx/server.access.log;

    location / {
        if ($host = www.abc.com) {
            proxy_pass  http://192.168.1.2;
            include  /etc/nginx/proxy_header;
            break;
        }
        if ($host = www.cba.com) {
            proxy_pass  http://192.168.1.3;
            include  /etc/nginx/proxy_header;
            break;
        }

        root   /var/www/nginx-default;
        index  index.html index.htm;
    }
   
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/nginx-default;
    }
}



[ 本帖最后由 suncle 于 2009-8-29 21:32 编辑 ]

论坛徽章:
0
发表于 2009-08-29 16:20 |显示全部楼层
自己先顶起来

论坛徽章:
0
发表于 2009-08-29 19:50 |显示全部楼层
先用if判断是哪个域名,然后再代理到相应的服务器,不知道这样行不行,我也没搞过,只是这样想的

论坛徽章:
0
发表于 2009-08-29 22:43 |显示全部楼层
server {
    listen   80;
    server_name  www.abc.com;

    access_log  /var/log/nginx/server.access.log;

    location / {
        proxy_pass  http://192.168.1.2;
        root   /var/www/nginx-default;
        index  index.html index.htm;
    }
   
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/nginx-default;
    }
}
server {
    listen   80;
    server_name  www.cba.com;

    access_log  /var/log/nginx/server.access.log;

    location / {
        proxy_pass  http://192.168.1.3;
        root   /var/www/nginx-default;
        index  index.html index.htm;
    }
   
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/nginx-default;
    }
}


nginx下的虚拟主机配置

[ 本帖最后由 liuwt123 于 2009-8-29 22:45 编辑 ]

论坛徽章:
0
发表于 2009-08-31 09:22 |显示全部楼层
原帖由 suncle 于 2009-8-29 21:30 发表
正好我有一个和你类似的需求,采用类似下面的方法已经成功。

其中 optimize_server_names 和 server_name_in_redirect 两个选项很关键


optimize_server_names off;
server_name_in_redirect off;

s ...


我开始也是想用if去判断,但是苦于不知道nginx的if后面可以跟些什么选项,有没有哪篇文章是专门介绍nginx的if选项的,推荐一下

[ 本帖最后由 00306 于 2009-8-31 09:29 编辑 ]

论坛徽章:
0
发表于 2010-02-04 11:23 |显示全部楼层
我现在也需要配置nginx作为反向代理服务器,是代理外网的web页面,我内网本身没有web站点,我不知道怎么去配置nginx的反向代理,请高手指点!谢谢

论坛徽章:
0
发表于 2010-02-04 17:01 |显示全部楼层
虚心学习来了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP