一、概念
Nginx虚拟主机是指在同一台服务器上,通过不同的域名、IP地址或端口来访问不同的网站或应用程序。在Nginx中,通过配置自定义的虚拟主机来实现这个功能。
二、基于端口
#在一个配置文件中可实现,两个配置文件中也可实现,我这边以一个配置文件为示例;
#nginx的主配置文件在/etc/nginx/nginx.conf;次配置文件在/etc/nginx/conf.d/下面,可以自定义次配置文件,可以是多个,但文件名必须以.conf结尾;每次更改完配置文件需重载配置文件:nginx -s reload。
#首先在不同的发布路径放好要发布的内容
server {
listen 80; 基于80端口
server_name 192.168.10.133;
location / {
root /usr/share/nginx/html/80/; #目录可以自定义
index index.html index.htm index.php;
}
}
server {
listen 81; #基于81端口
server_name localhost;
location / {
root /usr/share/nginx/html/81; #目录可以自定义
index index.html index.htm index.php;
}
}
#浏览器分别访问:192.168.10.133:80 #http协议默认端口为80,也可以不加
192.168.10.133:81
#重载配置文件:
nginx -s reload
三、基于IP地址
server {
listen 80;
server_name 192.168.10.133;
location / {
root /usr/share/nginx/html/133/; #目录可以自定义
index index.html index.htm index.php;
}
}
server {
listen 80;
server_name 192.168.10.134;
location / {
root /usr/share/nginx/html/134; #目录可以自定义
index index.html index.htm index.php;
}
}
#重载配置文件:
nginx -s reload
#浏览器分别访问:192.168.10.133
192.168.10.134 #因为都默认用80端口,所以不用加,也可以加
四、基于域名
server {
listen 80;
server_name www.qwer.com;
location / {
root /usr/share/nginx/html/qwer/; #目录可以自定义
index index.html index.htm index.php;
}
}
server {
listen 80;
server_name www.asdf.com;
location / {
root /usr/share/nginx/html/asdf/; #目录可以自定义
index index.html index.htm index.php;
}
}
#重载配置文件
nginx -s reload
#如果用的云服务器,做一下域名IP绑定就好了,如果是本地局域网,那么就需要做域名解析,当你电脑访问时,在你的电脑上做,如果是windows,文件在:C:\Windows\System32\drivers\etc\hosts;如果是苹果电脑,配置文件在:/etc/hosts
#打开文件,在最后加:
192.168.10.133 www.qwer.com www.asdf.com #这里的地址是你服务器的,加完保存退出
浏览器分别访问:www.qwer.com
www.asdf.com #因为都默认用80端口,所以不用加,也可以加