前言
因工作需要,在一台外部服务器上进行反代以访问内网服务器,
但是在反代过程中却出现了巨大的延迟问题,且明显高于请求转跳时间
经查阅资料及测试后,发现问题可能是在dns解析上,于是便作此文做个记录
正文
首先假设此处你的域名为test.com,那么在Nginx中你的配置文件的开头就应该是如下这样:
server{ listen 80; listen 443 ssl http2; listen [::]:443 ssl http2; listen [::]:80; server_name www.test.com test.com;
而延迟的罪魁祸首则在server_name上,这是这一行的dns解析占据了反代中时间最长的部分
因此要解决他,则需要在系统的host文件中直接写入该域名的dns解析地址
在linux上可通过修改/etc/hosts
文件来达到目的,
而在windows上则通过修改C:\Windows\System32\drivers\etc\hosts
来定义解析
需要新增的代码格式如下(linux与windows相同):
127.0.0.1 test.com www.test.com
之后再各自刷新dns缓存即可,对此linux可执行命令/etc/init.d/network restart
,而
windows则可执行ipconfig /flushdns
来刷新dns缓存。
至此,再去加载网页,会发现反代延迟有一定的改善,但是如果要想真正达到同原生直连一样的访问速度,那么还是得从业务架构上入手,否则也仅是治标不治本。