iteye_3786 2009-01-06 21:08 采纳率: 100%
浏览 362
已采纳

nginx配置的虚拟主机只有最后一个生效,是怎么回事啊?

nginx虚拟主机配置类似下面的结构,(放到sites-enabled目录下,一个站点建一个文件也一样)

http{



  server{

    listen       80;

    server_name  a.com;

    root /var/www/a;

  }



  server{

    listen       80;

    server_name  b.com;

    root /var/www/b;

  }



  server{

    listen       80;

    server_name  c.com;

    root /var/www/b;

  }



}



重启nginx以后,总是最后一个server有效,前面的a.com , b.com 都是指向c.com

大家有没有碰到这种情况,知道可能是什么原因么?
问题补充
不到不能配置到同一个端口么,每个站点换一个端口貌似可以,但是怎么都设置到80上呢?
问题补充:
嗯,我就是写的www.a.com

还有子域名,如qq.a.com

但是总是最后一个的生效。但是加上端口号的话,就不冲突,而且,奇怪是80端口那个冲突。建另外几个在81端口,他们都能用,但是80端口,最是最后一个服务霸者所有的。
问题补充:
谢谢 bohemia ,新建了一个文件,重新写了一遍规则,就好了,谢谢!

  • 写回答

4条回答 默认 最新

  • bohemia 2009-01-06 21:53
    关注

    修改为如下,应该可以的:

    [code="java"]http{

    server{
    listen 80;
    server_name [color=red]www.a.com[/color];
    root /var/www/a;
    }

    server{
    listen 80;
    server_name [color=red]www.b.com[/color];
    root /var/www/b;
    }

    server{
    listen 80;
    server_name [color=red]www.c.com[/color];
    root [color=blue]/var/www/c[/color];
    }

    } [/code]

    Wiki参考:
    http://www.nginx.cn/NginxChsVirtualHostExample

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教