您的位置:首页 > 运维架构 > Nginx

Linux中Nginx通过域名区分不同的虚拟主机

2019-08-06 21:02 996 查看

访问网站有两种方式:IP和域名。

类似于找到一个人,你可以通过身份证号,也可以通过名字。自然是记名字方便。

域名就是我们常说的网址,例如:www.baidu.com

但归根结底,计算机网络是通过IP连接服务器获取消息的,域名到IP或者IP到域名的转换,是通过DNS服务器解析域名实现的。Dns服务器保存的就是域名和ip的映射关系。

通常,一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

为了实现在一台服务器启动多个网站,就必须通过Nginx域名区分不同的虚拟主机。

在自己做项目时,可以在本地linux上实现上述过程。

首先,如果服务在windows发布,测试时需要修改window的hosts文件:(C:\Windows\System32\drivers\etc)

可以通过switchhosts软件实现上述功能。

域名的配置:

192.168.25.148 www.test.com
192.168.25.148 www.yiyou.com

hosts文件中可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。

其次,在安装好的Nginx中找到nginx.conf文件夹下,配置域名:

server {
listen    80;
server_name www.taobao.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root  html-taobao;
index index.html index.htm;
}
}

server {
listen    80;
server_name www.baidu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root  html-baidu;
index index.html index.htm;
}
}
}

重启nginx服务即可。

备注:要关闭防火墙或允许相关端口透过防火墙

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

最后重启系统使设置生效即可。

systemctl start iptables.service #打开防火墙

systemctl stop iptables.service #关闭防火墙
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: