apache与nginx共存,怎么让域名去找对应的服务器?

一台centos服务器部署了apache和nginx,因为有不同的需求需要部署如下环境:
a.com->apache(80)->php5.3(9000)->web path1;
b.com->nginx(1980)->php5.6(9001)->web path2;
现在已经装好了对应的环境,但是到了域名访问的时候出现一个问题:
a.com正常访问,b.com访问的时候去了a.com,在apache/nginx均做了虚拟机配置
只能以b.com:1980或者ip:1980方式才能去访问,请问还有没有得救?具体怎么做?

阅读 7.2k
3 个回答

非80端口是无法直接访问域名的。。。你可以做个转发,你先apache是80端口,在apache上做一个代理,把b.com的请求转发给nginx。。这样就ok了

你可以在nginx配置b.com做反向代理,指向ip:1980

建议apache监听1980
nginx监听80
在nginx 的 server a.com里面配proxy 到127.0.0.1:1980
如果配合upstream更好

nginx部分配置如下

upstream server_a {
    server 127.0.0.1:1980;
}
server
{
    listen 80;
    server_name a.com;
    location /
    {
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_pass http://server_a;
    }
}
server
{
    listen 80;
    server_name b.com;
    ......后面就省略了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题