Nginx虚拟主机配置详解
什么是虚拟主机
虚拟主机使用的是特殊的软硬件技术,他把一台运行在因特网上的服务器主机分为一台台”虚拟“的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的服务器功能,同一台主机傻姑娘的虚拟主机之间是完全独立的。
nginx基本虚拟主机配置如下:
基于IP的虚拟主机
在Linux等常用操作系统都允许添加IP别名,可以在一块网卡中添加绑定多个IP地址,这样就可以在单一网卡的服务器中运行多个基于IP的虚拟主机。
复制代码
然后对nginx配置文件分别配置192.168.8.43、192.168.8.44、192.168.8.45三个IP配置静态HTML支持的虚拟主机。
http {
# 配置192.168.8.43虚拟主机
server {
# 监听IP和端口
listen 192.168.8.43:80;
# 主机名称
server_name 192.168.8.43;
# 访问日志文件存放路径
access_log logs/server1.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/server1;
}
}
# 配置192.168.8.44虚拟主机
server {
# 监听IP和端口
listen 192.168.8.44:80;
# 主机名称
server_name 192.168.8.44;
# 访问日志文件存放路径
access_log logs/server2.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/server2;
}
}
# 配置192.168.8.45虚拟主机
server {
# 监听IP和端口
listen 192.168.8.45:80;
# 主机名称
server_name 192.168.8.45;
# 访问日志文件存放路径
access_log logs/server3.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/server3;
}
}
}
复制代码
由上述配置文件代码可以知道,一段server{}就是一个虚拟主机,如果要配置多个虚拟主机,配置多段server{}就可以,只不过里面的监听的ip和端口必须要不一样,也可以统一使用listen 80
表示监听服务器上所有ip的80端口,通过server——name区分不同的虚拟主机
基于端口的虚拟主机
基于端口的虚拟主机基本上不是用的很多,一般情况只作为简单了解即可
http {
# 配置端口1虚拟主机
server {
# 监听IP和端口
listen 80;
# 主机名称
server_name localhost;
# 访问日志文件存放路径
access_log logs/nginx80.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx80;
}
}
# 配置端口2虚拟主机
server {
# 监听IP和端口
listen 81;
# 主机名称
server_name localhost;
# 访问日志文件存放路径
access_log logs/nginx81.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx81;
}
}
# 配置端口3虚拟主机
server {
# 监听IP和端口
listen 82;
# 主机名称
server_name www.nginx82.com;
# 访问日志文件存放路径
access_log logs/nginx82.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx82;
}
}
}
复制代码
基于域名的虚拟主机
基于域名的虚拟主机是比较常见的一种虚拟主机,只需配置本地的DNS服务器,将每个主机名映射到正确的ip地址,然后配置nginx服务器,令其识别不同的主机名就可以实现。
基于域名的方式使很多虚拟主机共享一个ip地址,有效的解决了ip地址不足的问题。所以如果没有特殊要求,尽量不要使用基于ip配置虚拟主机,尽量使用基于域名的虚拟主机。
http {
# 配置域名1虚拟主机
server {
# 监听IP和端口
listen 80;
# 主机名称
server_name www.nginx1.com;
# 访问日志文件存放路径
access_log logs/nginx1.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx1;
}
}
# 配置域名2虚拟主机
server {
# 监听IP和端口
listen 80;
# 主机名称
server_name www.nginx2.com;
# 访问日志文件存放路径
access_log logs/nginx2.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx2;
}
}
# 配置域名3虚拟主机
server {
# 监听IP和端口
listen 80;
# 主机名称
server_name www.nginx3.com;
# 访问日志文件存放路径
access_log logs/nginx3.access.log combined;
location / {
# 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
index index.html index.htm;
# HTMl网页文件存放目录
root /data1/nginx3;
}
}
}
复制代码