什么是虚拟主机?
虚拟主机就是使用特殊的软硬件技术,把一台计算机主机分成多台“虚拟”的主机,每一台虚拟主机都具有独立的域名和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就会进入不同的虚拟主机。
通过以上任意一种方式你就可以在一台服务器上发布多个网站,网站之间的运行互相独立不受影响。