nginx - 剂量 nginx server_name 如何工作
问题描述
我有两个网站一个是server1.example.com
另一个server2.example.com
。所以我添加了两台服务器nginx_config
server{
listen 80;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
server{
listen 80;
server_name server2.example.com;
location / {
proxy_pass http://127.0.0.1:9091;
}
}
它运作良好
如果我删除其中一个,结果不符合我的期望。当我删除 confserver2.example.com
server{
listen 80;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
# server{
# listen 80;
# server_name server2.example.com;
# location / {
# proxy_pass http://127.0.0.1:9091;
# }
# }
当我访问时,server2
我想我会得到404
或500
http 代码。但我得到了回应server1
为什么?
解决方案
使用不同的server_name
虚拟名称和 nginx 的方法是查看哪个部分服务器。
如果没有部分匹配它,那么nginx
将使用第一个声明的服务器。在这种情况下对你来说是server1.example.com
。或者您可以使用default_server
关键字覆盖它。
server{
listen 80 default_server;
server_name server1.example.com;
location / {
proxy_pass http://127.0.0.1:9090;
}
}
您应该查看以下网址以获取更多详细信息
推荐阅读
- android - 如何在 ViewModel 层中引用 UI 组件
- c# - 如何切换二维数组中元素的位置?
- c# - 实体框架 SqlQuery 可空字段
- javascript - 如何使用 javascript 从 firefox 页面获取表数据
- java - 图像未显示在 Firebase RecyclerView 中
- ms-access - 在 Access 2010 中过滤第三个位置的 mid 函数
- nim-lang - Nim 在内存效率方面与 Java 相似吗?
- windows-installer - log4net 日志文件在应用程序安装子文件夹的 Windows 资源管理器中不可见
- angular - 如何通过 Angular ViewChildren 访问 SVG 元素
- python - Python 3.x:将两个具有相同键和值的字典合并为数组