前言

因工作需要,在一台外部服务器上进行反代以访问内网服务器,

但是在反代过程中却出现了巨大的延迟问题,且明显高于请求转跳时间

经查阅资料及测试后,发现问题可能是在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缓存。
至此,再去加载网页,会发现反代延迟有一定的改善,但是如果要想真正达到同原生直连一样的访问速度,那么还是得从业务架构上入手,否则也仅是治标不治本。