配置多个虚拟主机
就是在一台服务器启动多个网站。
如何区分不同的网站:
1、域名不同
2、端口不同
一:下面通过配置端口不同,访问不同的虚拟主机
1:编辑nginx.conf配置文件
vim conf/nginx.conf
下面是默认的主机配置
2:添加一个端口不一样的主机,并指向另外一个静态页面
server {
listen 81;
server_name localhost;
location / {
root html-81;
index index.html index.htm;
}
}
3:重新copy一份安装目录下的html文件,同时你可以修改一下你的html目录下的index.html文件,一遍下面访问时辨别
sudo cp -r html html-81
4:重新启动你的nginx
./nginx -s reload
5:测试
访问80端口的
访问81端口的
二:通过域名区分不同的主机
1:什么是域名
域名就是网站。
Tcp/ip
Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。
一级域名:
Baidu.com
Taobao.com
Jd.com
二级域名:
Image.baidu.com
Item.baidu.com
三级域名:
1.Image.baidu.com
Aaa.image.baidu.com
一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。查看百度的,也是绑定的58.217.200.112
当你自己的电脑访问一个域名时,首先,他会看你本机的hosts文件中配置的域名和ip的对应关系,查看你配置的域名和ip,看是否有域名一样的,有则,访问对应的ip;如果没有找到,则,走Dns服务器,dns服务器也会去查找有没有对应的ip,有则返回ip,再返回这个ip;
Windows下的hosts文件在:(C:\Windows\System32\drivers\etc)
liunx下的hosts文件在:(/etc/hosts)
这个hosts文件配置规则是:ip 空格 域名
注意,这个是不用端口了,配了也无效
下面我是用线上的域名进行配置,将域名绑定自己线上的ip;我的是wangshufu.cn指向ip39.106.32.72
电脑访问wangshufu.cn时,查看本机的hosts文件是否有配置,无,则访问呢Dns服务器,然后Dns返回ip,浏览器则访问这个ip
2:面增加的nginx配置文件,并重启nginx
server {
listen 80;
server_name wangshufu.cn;
location / {
root html-81;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3:测试访问wangshufu.cn;dns服务器返回ip,访问,又因为我们域名是wangshufu.cn,则访问html-81下的index.html