Nginx 虚拟主机
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供web服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。
Nginx 支持三种类型的虚拟主机配置,具体包括基于域名、基于IP、基于端口的虚拟主机。
- 基于域名的虚拟主机 :这种类型的虚拟主机使用server_name指令来区分不同的虚拟主机,适用于外部网站的发布。通过域名系统(DNS)解析到同一个IP地址的不同域名可以指向不同的网站内容。
- 基于IP的虚拟主机 :一块主机绑定多个IP地址,每个IP地址对应一个虚拟主机。这种方式要求服务器有多个IP地址,每个虚拟主机通过不同的IP进行访问。
- 基于端口的虚拟主机 :通过不同的端口号来区分不同的虚拟主机,适用于需要在同一台物理服务器上运行多个服务的情况。
Nginx通过提供虚拟主机的功能,允许用户在单一服务器上部署多个网站或应用,而无需安装多个Nginx实例。
1.基于域名的虚拟主机 :【重点】
vim /etc/nginx/conf.d/nginx01.conf
# 基于域名的虚拟主机
server{
listen 80;
server_name nginx01.kunkun666.cn;
location / {
root /app01;
index test.txt;
}
}
server{
listen 80;
server_name www.kunkun666.cn;
location / {
root /app02;
index test.txt;
}
}
# 创建资源目录和文件
mkdir /app01 /app02
echo "app01" > /app01/test.txt
echo "app02" > /app02/test.txt
# 检测nginx配置文件语法
nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl reload nginx
#
nginx01.kunkun666.cn
www.kunkun666.cn
2.基于端口的虚拟主机 :【重点】
vim /etc/nginx/conf.d/nginx01.conf
# 基于端口的虚拟主机
server{
listen 80;
server_name nginx01.kunkun666.cn;
location / {
root /app01;
index test.txt;
}
}
server{
listen 81;
server_name nginx01.kunkun666.cn;
location / {
root /app02;
index test.txt;
}
}
# 检测nginx配置文件语法
nginx -t
systemctl reload nginx
# 访问
nginx01.kunkun666.cn:80
nginx01.kunkun666.cn:81
3.基于IP的虚拟主机 :
vim /etc/nginx/conf.d/nginx01.conf
# 基于IP的虚拟主机
server{
listen 80;
server_name 192.168.137.40;
location / {
root /app01;
index test.txt;
}
}
server{
listen 80;
server_name 192.168.137.41;
location / {
root /app02;
index test.txt;
}
}
#
# 添加一个临时ip
ip a a 192.168.137.41/24 dev ens33
# 检测nginx配置文件语法
nginx -t
systemctl reload nginx
# 访问
192.168.137.40
192.168.137.41