能够实如今同一台服务运行多个网站,并且网站之间互相不干扰。同一个服务器可能有一个ip,网站须要使用80端口。网站的域名不一样。html
区分不一样的网站有三种方式:ip区分、端口区分、域名区分,显然经过IP区分是不太现实的,这里只验证后两种方式nginx
1.配置nginx基于端口号的虚拟主机浏览器
1.1 nginx配置文件中添加一个server节点,这里server节点的域名都是localhost,只是端口号不一样服务器
1.2 将 /usr/local/nginx/路径下的html目录复制一份,命名为html81tcp
修改html目录下的index.html以下:测试
hml81目录下的index.html修改以下:网站
1.3 从新加载配置文件:spa
cd /usr/local/nginx/bin.net
./nginx -s reload 3d
而后测试虚拟主机:
经过浏览器访问80端口的虚拟主机:
经过浏览器访问81端口的虚拟主机:
注意:若是81端口访问不通,有多是被防火墙拦截了!开放81端口便可:
[root@localhost nginx]# /sbin/iptables -I INPUT -p tcp --dport 81 -j ACCEPT
[root@localhost nginx]# /etc/rc.d/init.d/iptables save
2.nginx配置基于域名区分的虚拟主机——最有用的虚拟主机配置方式。
咱们平时访问淘宝时只须要在浏览器地址栏中输入taobao.com即可以访问淘宝首页,这个”taobao.com”即是域名,并且”taobao.com”是一级域名,咱们买域名买的即是一级域名,而”www.taobao.com”是二级域名。若是咱们想在浏览器地址栏中输入域名访问咱们本身的网站的话,可有两个途径,第一个途径是买一个属于本身的域名,访问这个域名须要通过DNS服务器(把域名解析为ip地址,保存的就是域名和ip之间的映射关系),DNS服务器就是为了将访问的域名对应到相应的IP上,因此最终仍是经过IP实际访问网站的,以下:
注意,一个域名对应一个ip地址,一个ip地址能够被多个域名绑定。第二个途径是配置本地的hosts文件,若是hosts文件中有配置域名对应的ip,就不会去请求DNS服务器了,会直接用hosts中配置的ip地址去访问网页。
2.1 hosts添加域名映射:在hosts文件中添加以下两个域名来进行测试:
2.2 修改nginx.conf配置,设置以域名方式区分虚拟主机,设置以下:
修改server监听的端口号均为80端口;
第一个server节点的server_name 设置为www.test81.com; location 节点root 值仍然为 html81, 当浏览器输入http://www.test81.com时,应该会访问到
/usr/local/nginx/html81路径下的index.html ,同理,第二个server节点只修改server_name为 www.test80.com; 便可(注意结尾的分号不能少)
修改保存后,重启nginx:
2.3测试:
参考资料:https://blog.csdn.net/yerenyuan_pku/article/details/73135376