Nginx虚拟主机配置

    

什么是虚拟主机?


    虚拟主机就是使用特殊的软硬件技术,把一台计算机主机分成多台“虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能。在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程序,互不干扰;而各个用户拥有自己的一部分系统资源(IP地址、文件存储空间、内存、CPU时间等)。
    其实说白了就是有一套大房子,然后给这个房子加上隔断,分成几个小屋,然后每个小屋都租赁给一个商户,每个商户之间都是相互不受影响的,相互独立的。
    

    

Nginx实现虚拟主机的三种方式


    在说三种方式之前,简单的介绍下nginx.conf里面的配置的详情。

Nginx配置段

// 全局区
worker_processes 1; // 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数

Event {
// 一般是配置nginx连接的特性
// 如1个worker能同时允许多少连接
 worker_connections  1024; // 这是指 一个子进程最大允许连1024个连接
}

http {  //这是配置http服务器的主要段
     Server1 { // 这是虚拟主机段

            Location {  //定位,把特殊的路径或文件再次定位 ,如image目录单独处理
            }             /// 如.php单独处理

     }

     Server2 {
     }
}

基于域名

    需要修改下hosts文件,加上IP和域名的对应关系,要不然是访问不到的。

vim /etc/hosts
192.168.22.33 www.lingzai.com
192.168.22.33 www.xiaowang.com
 server {
        listen 80;
        server_name www.lingzai.com;
        localtion /{
                root html-ling;
                index index.html;
        }
    server {
        listen 80;
        server_name www.xiaowang.com;
        location /{
            root html-wang;
            index index.html;
        }

    然后访问相应的域名www.xiaowang.com或者www.lingzai.com就会出现相应的index界面。

基于IP

    给每一个server配置一个IP,直接访问不同的IP就会访问不同的虚拟主机。

server{
        listen  80;
        server_name 59.46.80.12;
        location /{
           root  html-wang;
           index index.html;
        }

}
server{
     listen  80;
     server_name 59.46.80.11;
     location /{
        root  html-ling;
        index index.html;
     }

 }

    注意:配置完成后,需要reload配置才会生效:

reload nginx配置文件,命令:/nginx/bin/nginx -s reload

基于端口

    当输入不同的端口号的时候,进入不同的虚拟主机。配置如下:

server{
        listen  2022;
        server_name 192.168.22.33;
        location /{
           root  html-wang;
           index index.html;
        }

    }
    server{
        listen  2033;
        server_name 192.168.22.33;
        location /{
           root  html-ling;
           index index.html;
        }

    }

    在浏览器中输入192.168.22.33:2033或者2022就会进入不同的虚拟主机。

    通过以上任意一种方式你就可以在一台服务器上发布多个网站,网站之间的运行互相独立不受影响。

上一篇:Nginx反向代理


下一篇:CSDN社区分享面试经历活动作品15——心态决定成败