对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。
虚拟主机类型
Nginx 支持三种类型的虚拟主机配置:
- 基于 IP 的虚拟主机
- 基于域名的虚拟主机
- 基于端口的虚拟主机
基于IP虚拟主机
1. 增加主机IP
目标主机需要主机配备 2 个以上 ip,配置 ip 不是本文重点,这里不展开。
2. 创建站点目录和网页
[root@nginx ~]# mkdir -p /home/wwwroot/ipsite01/ [root@nginx ~]# mkdir -p /home/wwwroot/ipsite02/ [root@nginx ~]# echo 'ipsite01' > /home/wwwroot/ipsite01/index.html [root@nginx ~]# echo 'ipsite02' > /home/wwwroot/ipsite02/index.html
3. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/ipsite.conf #添加如下内容 server { listen 80; #监听端口 server_name 192.168.1.1; #配置虚拟主机名和IP location / { root /home/wwwroot/ipsite01/; #请求匹配路径 index index.html; #指定主页 access_log /home/wwwlog/ipsite01.access.log main; error_log /home/wwwlog/ipsite01.error.log warn; } } server { listen 80; server_name 192.168.1.1; location / { root /home/wwwroot/ipsite02/; #请求匹配路径 index index.html; access_log /home/wwwlog/ipsite02.access.log main; error_log /home/wwwlog/ipsite02.error.log warn; } }
4. 检查配置文件是否正确并重启加载配置生效
[root@nginx ~]# nginx -t #检查配置文件 [root@nginx ~]# nginx -s reload #重载配置文件
基于域名虚拟主机
1. 创建站点目录和网页
[root@nginx ~]# mkdir -p /home/wwwroot/domainsite01/ [root@nginx ~]# mkdir -p /home/wwwroot/domainsite02/ [root@nginx ~]# echo 'domainsite01' > /home/wwwroot/domainsite01/index.html [root@nginx ~]# echo 'domainsite02' > /home/wwwroot/domainsite02/index.html
2. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/domainsite.conf
#添加如下内容
server {
listen 80; #监听端口
server_name www.runoops.lh; #配置虚拟主机域名
location / {
root /home/wwwroot/domainsite01/; #请求匹配路径
index index.html; #指定主页
access_log /home/wwwlog/domainsite01.access.log main;
error_log /home/wwwlog/domainsite01.error.log warn;
}
}
server {
listen 80;
server_name m.runoops.lh;
location / {
root /home/wwwroot/domainsite02/; #请求匹配路径
index index.html;
access_log /home/wwwlog/domainsite02.access.log main;
error_log /home/wwwlog/domainsite02.error.log warn;
}
}
3. 检查配置文件是否正确并重启加载配置生效
[root@nginx ~]# nginx -t #检查配置文件 [root@nginx ~]# nginx -s reload #重载配置文件
基于端口虚拟主机
1. 创建站点目录和网页
[root@nginx ~]# mkdir -p /home/wwwroot/portsite01/ [root@nginx ~]# mkdir -p /home/wwwroot/portsite02/ [root@nginx ~]# echo 'portsite01' > /home/wwwroot/portsite01/index.html [root@nginx ~]# echo 'portsite02' > /home/wwwroot/portsite02/index.html
2. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/portsite.conf
#添加如下内容
server {
listen 8080; #监听端口
server_name www.runoops.lh; #配置虚拟主机域名
location / {
root /home/wwwroot/portsite01/; #请求匹配路径
index index.html; #指定主页
access_log /home/wwwlog/portsite01.access.log main;
error_log /home/wwwlog/portsite01.error.log warn;
}
}
server {
listen 8090;
server_name www.runoops.lh;
location / {
root /home/wwwroot/portsite02/; #请求匹配路径
index index.html;
access_log /home/wwwlog/portsite02.access.log main;
error_log /home/wwwlog/portsite02.error.log warn;
}
}
3. 检查配置文件是否正确并重启加载配置生效
[root@nginx ~]# nginx -t #检查配置文件 [root@nginx ~]# nginx -s reload #重载配置文件
分享笔记