代码改变世界

nginx:虚拟主机配置

2016-05-18 09:44  ZengGW  阅读(578)  评论(0编辑  收藏  举报

nginx的虚拟主机配置主要分为三类:

  基于域名的虚拟主机(z.com)

  基于ip的虚拟主机(192.168.1.42)

  基于端口的虚拟主机(z.com:2022)

一般当服务器的主机超过两个时,建议将这些虚拟主机单独建立文件,然后在nginx.conf文件中直接引入(比如:include vhost/*.conf)

一、基于域名的虚拟主机

  server {

    listen 80;
    server_name z.com;

    location / {
      root /home/www/zgw/;
      index index.html;
    }
  }

 解释:

   server {}一个这个代表一个虚拟主机池

   listen 80;端口(默认是80端口,下面基于域名虚拟主机时可填写别的端口)

   root /home/www/zgw/;网页住目录

     index index.html;默认网页文件

 a.保存之后必须检查一下配置文件是否配置正确:/usr/local/nginx/sbin/nginx -t(出现test is successful字样代表配置成功)

 b.去对应目录(/home/www/zgw/)下面建立index.html文件,并写入内容

 c.重启一下nginx:kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

 此时你在本地访问 z.com这个域名它会去请求外网,不会解析你linux配置的信息

 d.必须修改本地host,绑定域名对应的linux的ip(比如ip为192.168.1.42)

 192.168.1.42    z.com

 此时访问就能出现刚才index.htm中写入的内容

二、基于端口的虚拟主机

  依旧以z.com域名为例

  server {

    listen 2022;(只需要将基于域名的虚拟主机server{}复制一份,将此处的端口改成你想要的端口即可)
    server_name z.com;

    location / {
      root /home/www/port/;
      index index.html;
    }
  }

  然后重复上面的的操作即可(注意:z.com域)

  此时使用z.com:2022来进行访问

三、基于ip的虚拟主机

  server {

    listen 80;
    server_name 192.168.1.42;

    location / {
      root /home/www/ip/;
      index index.html;
    }
  }

  然后重复(一)的操作即可,此处也不需要绑定host,值得注意的是,nginx的配置文件是从上读到下的,如果你把配置ip的虚拟主机放到nginx原先存在的localhost的server后面的话,你访问该ip会出现nginx的欢迎介面,而不是你刚才配置的信息了,顺序很重要