大连全瓷种植牙齿制作中心 发表于 2022-8-11 06:00:38

相同主机上提供不同web server的nginx配置和试验记录

 
1、安装nginx
https://cloud.tencent.com/developer/article/1437633
2、开启nginx
同上。
 
3、关闭防火墙(否则,默认情况下,nginx server对外的端口没有开放访问)
https://www.cnblogs.com/zhoulujun/p/12099874.html#:~:text=nginx%E5%90%AF%E5%8A%A8%E5%90%8E%EF%BC%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%98%E6%98%AF%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%2C%E9%97%AE%E9%A2%98%E6%8E%92%E9%99%A4%EF%BC%9A%E8%AE%BE%E7%BD%AE%E9%98%B2%E6%8A%A4%E5%A2%99%E5%BC%80%E6%94%BE%E6%96%AD%E5%BC%80%20%E9%A6%96%E5%85%88%E6%A3%80%E6%9F%A5%20nignx%20-t%20%E7%84%B6%E5%90%8E%E6%9F%A5%E7%9C%8B,ps%20-ef%20%7C%20grep%20nginx%20%E5%A6%82%E6%9E%9C%E4%BB%A5%E4%B8%8A%E9%83%BD%E6%B2%A1%E6%9C%89%E9%97%AE%E9%A2%98%E9%82%A3%E5%B0%B1%E6%98%AF%E9%98%B2%E7%81%AB%E5%A2%99%E7%9A%84%E9%97%AE%E9%A2%98
 
4、验证
(1)服务器上验证本地nginx 已开启
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625103600374-436164285.png
 
 
 
(2)从其他客户端机器上验证nginx可以访问
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625103631072-2106549906.png
 
 
5、配置nginx server 为2个虚拟服务器
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625104159395-765372773.png
 
 
其实,nginx.conf 会加载 conf.d目录下的所有子目录,查看 default.conf 文件,里面可以看到 server指令,里面指向了 index.html文件的位置
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625105029443-821412830.png
 
 
进一步,查看 /usr/share/nginx/html/index.html 文件内容,如下:
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625105152067-1151393267.png
 
 
6、新增2个子目录,以及2个子目录下的index.html 文件
book 
news
新增目录的位置是  /usr/share/nginx/html ,参考已有的index 文件,修改index.html文件中的内容为book和news。
 
7、在default.conf 中增加 book 和 news 的配置,如下:
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625111608458-229593300.png
 
 
8、重新开启 nginx 配置文件检测,确定上面的配置是ok的
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625111657431-1727828699.png
 
 
9、配置nginx 重新加载配置文件文件。
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625111749691-1230724540.png
 
 
10、nginx 本地服务器增加 book.abc.com 的域名解析
修改文件为: /etc/hosts
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625111903513-111823472.png
 
 
11、nginx 本地服务器,尝试访问此域名对应的web server
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625112021337-1744366634.png
 
 
 
12、其它客户端增加域名解析,配置方法同步骤10
13、其它客户端访问 book 域名
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625112212557-814786392.png
 
 
尝试访问默认的域名,得到如下内容,可见,如果没有指定域名,则web server 返回nginx配置文件中,第一个虚拟主机server的内容。
注意,此时web server已经修改成 news.abc.com 作为 default.conf 中的第一个虚拟主机(不同于步骤7)
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625115957598-908184148.png
 
 
 
尝试访问 news的域名
https://img2022.cnblogs.com/blog/460728/202206/460728-20220625120057976-1623496575.png
 
可见,客户端可以正常访问同一台服务器上的 book.abc.com 和 news.abc.com 2个web server。实际上这2个web server都是监听在80端口。
 
总结:
1、客户端发出的http 请求,分别有3层和7层信息,3层信息是将域名解析到ip地址,7层信息,是指http请求中带有访问的目的域名,两者作用不同,都需要。http server会根据七层的域名,从而对应上对应的虚拟主机。
2、服务器端可以在一个80端口上启动多个虚拟主机的监听,而不限定于只有1个虚拟主机。这样的话,就可以在同一台物理服务器上虚拟支持多个web server,区别点就在于7层的http请求报文中的目的host不同,web servber会解析这个字段的值,从而对应到不同的虚拟主机。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 相同主机上提供不同web server的nginx配置和试验记录