前言
由于项目需要,由于前后端分离的原因,需要在Windows的单台主机上配置反向代理(不联网)。
服务器配置如下:
域名1、域名2,域名1的uri为/api
时反向代理至域名2。
出现问题
正常来说,配置应该如下:
server {
listen 80;
server_name test1.com;
...
location /api {
proxy_pass http://test2.com/;
...
}
}
server {
listen 80;
server_name test2.com;
...
location / {
...
}
}
然而,服务运行发现,nginx报错提示找不到上游upstream http://test1.com。
尝试修复
初步判断为dns解析问题,那么问题来了,不联网的机器怎么实现解析。
通过修改hosts文件,添加如下行:
127.0.0.1 test1.com
127.0.0.1 test2.com
重新打开nginx,问题依旧。
解决问题
由于报找不到upstream,那我手写一个upstream总可以吧。
不联网的话除非自建dns服务器,否则只能手写upstream
在server块外部添加:
upstream test2.com {
127.0.0.1:80;
}
问题解决,启动服务无报错。
后记
归纳nginx不读取hosts文件解析,这个问题可能有以下原因:
- nginx代码没写
- Windows系统问题
- nginx版本问题(本次出现问题的是1.19.1版本)