Nginx实现虚拟机
可以实现在同一台服务运行多个网站,而且网站之间互相不干扰。同一个服务器可能有一个ip,网站需要使用80端口。网站的域名不同。
区分不同的网站有三种方式:ip区分、端口区分、域名区分,显然通过IP区分是不太现实的,这里只验证后两种方式
1.配置nginx基于端口号的虚拟主机
1.1 nginx配置文件中添加一个server节点,这里server节点的域名都是localhost,只是端口号不同
1.2 将 /usr/local/nginx/路径下的html目录复制一份,命名为html81
修改html目录下的index.html如下:
hml81目录下的index.html修改如下:
1.3 重新加载配置文件:
cd /usr/local/nginx/bin
./nginx -s reload
然后测试虚拟主机:
通过浏览器访问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