关于localhost访问特别快而nginx配置代理后转发特别慢的解决

  • 背景
  • 解决过程
  • 后续

背景

本地启动一个web应用,在采用localhost:port的方式访问的时候特别流畅,因为访问其它资源涉及到跨域问题所以采用nginx配置代理,结果采用nginx代理后网页有几个但不是全部的静态资源加载特别慢,最终可能会引发504网关超时的问题。

解决过程

定位肯定是nginx的问题,查看nginx日志发现,正常的静态资源的请求链接会直接代理到127.0.0.1,而不正常的会代理到[::1]及127.0.0.1两个,先怀疑是多网卡的问题,把其它虚拟网卡关掉后问题仍然存在。

看下我的nginx的配置:

最终在我们组大神(军神)的猜测下是不是localhost出现的问题,换成ip:127.0.0.1。卧槽,果然变得无比流畅了。
猜测有可能是给路由到了ipv6的localhost上去,不知道触发原因是什么,当Proxy_To [::1]:8161,127.0.0.1:8181时,因为[::1]:8161得不到请求返回,结果一分钟超时后转而代理到127.0.0.1:8181得到返回,这就是造成某些静态资源一分钟后请求才能到达服务器的原因。所以以后nginx配置代理时尽量用ip替代域名!!!至于具体原因以后明白了再补充。

后续

之前只是找到了如何解决的方法,今天在配置host文件时候发现之前配置的好几个域名都不能用了。查找了下发现在host文件中一行127.0.0.1 对应的后面几个域名都无法访问,前面几个可以,推测host文件对于一行ip解析的域名个数是不是有限制。后来在军神的查找下(https://superuser.com/questions/932112/is-there-a-maxium-number-of-hostname-aliases-per-line-in-a-windows-hosts-file#answer-932113)说明一个ip一行只能最多对应9个域名,但是自己在测试时候发现最多可以对应10个其实。

然后发现自己的localhost正好位于十个之后,所以此时我ping localhost发现解析到了::1的地址。原因是,首先查找ipv4的localhost,因为我的配置位于十个之后,所以无法解析,host文件中查找不到localhost对应的ipv4的地址,所以去找ipv6的地址,localhost就被默认解析成了::1。
上面的环境都是在win7之下,但是在win10上ping localhost发现也是解析到::1(哪怕host文件中配置了单行的解析127.0.0.1 localhost)。终究原因是win10默认是先采用ipv6的解析(优先级高),所以在win10下ping localhost会先解析到::1。解决方法是修改win10下默认的解决host策略,可以参考:https://blog.csdn.net/ambertian/article/details/70238020

关于localhost访问特别快而nginx配置代理后转发特别慢的解决相关推荐

  1. iPhone手动配置代理后无法下载Charles证书解决办法以及unknown文件

    关于Charles的配置可以看这位大佬的帖子https://blog.csdn.net/Yuki1127918/article/details/122759610 我是按着这上面的步骤配置的,但过程中 ...

  2. Nginx配置报错unknown directive echo的解决

    Nginx配置报错unknown directive "echo"的解决 实际上,Nginx并没有内置echo这个指令,所以你贸然使用时,自然会提示说无法识别的指令.它是由agen ...

  3. nginx配置代理udp

    nginx配置代理udp nginx配置代理udp 1.配置nginx主配置文件 2.创建udp新配置文件 3.检查配置文件 4.重新加载配种文件 5.查看端口是否被监听 nginx配置代理udp 1 ...

  4. 【Fiddler 问题】解决关于Fiddler 抓包中,手机网络配置代理后,无法上网

    [Fiddler 问题]解决关于Fiddler 抓包中,手机网络配置代理后,无法上网 一.在注册表添加文件 二.配置 FiddlerScript rule 一.在注册表添加文件 1.使用 window ...

  5. mitmproxy配置代理后 APP连接不到网络 XPosed安装

    本文仅供学习交流使用,如侵立删! mitmproxy配置代理后 APP连接不到网络 配置mitmproxy代理后,有些APP会出现连接不到网络的情况 原因:SSL证书问题 Android5.1系统版本 ...

  6. Nginx相关 解决nginx反向代理后页面上的js/css文件无法加载

    解决nginx反向代理后页面上的js/css文件无法加载 location ~ \.php$ {proxy_pass http://127.0.0.1:8000;include naproxy.con ...

  7. nginx无法访问index.html,ThinkPHP5 + nginx配置(index.php无法访问404)

    下载ThinkPHP5后,在nginx下默认无法访问index.php, 假如文件系统路径是/home/www/ 创建项目php5后欢迎页访问路径是: http://xxxxx/home/www/ph ...

  8. nginx配置域名后的二级目录访问不同项目的配置

    场景描述: 通过二级目录(虚拟目录,应用程序)的方式访问同一ip+端口的不同应用,例如location是用户使用页面,location/admin/是管理页面,location部署在192.168.1 ...

  9. nginx配置重启后新域名及其访问不起作用

    1.nginx配置2个server后 第一个域名1,访问第一个ip1:port1 第二个域名2,访问第二个ip1:port2 2.重启nginx后,使用第一个域名访问正常.使用第二个域名访问时,访问的 ...

最新文章

  1. Android图形---OpenGL(二)
  2. mysql包含哪几部分_sql语言包含哪些部分
  3. java 知乎面试题_面试题|Java基础17道常见面试题
  4. 图文详解CDC技术,看这一篇就够了!
  5. when is oData transaction data request sent for an xml view binding case
  6. 数据可视化|实验五 分析1996-2015年人口数据各个特征的分布与分散状况
  7. JAVA入门级教学之(do...while循环)
  8. LOADRUNNER连接ORACLE数据库的方法
  9. python numpy 数组元素周围_Python numpy数组元素属性及访问
  10. (56)FPGA面试题-如果连线宽度不匹配怎么办?
  11. BAT脚本一键更新提交代码到线上
  12. ak和sk怎么认证 海康威视_JWT和HMAC(AK/SK)认证方式使用场景
  13. vijos1846 [NOIP2013] 华容道【最短路】
  14. 腾讯QQ空间登录的方法实现方式与验证过程分析
  15. mouseover 和 mouseenter
  16. 每秒浮点运算次数FLOPS
  17. bugku never_give_up file_get_contents()有php://input漏洞 eregi \x00绕过
  18. 娱乐,舰娘r建造公式【转】
  19. 第4章 数据的概括性度量
  20. 斩波稳定(自稳零)精密运算放大器

热门文章

  1. java毕业生设计宠物领养管理系统计算机源码+系统+mysql+调试部署+lw
  2. Dropbox一款很实用的个人文件同步利器
  3. ONES 通过 CMMI 3 级评估认证
  4. 抖音爆款小游戏《我飞刀玩得贼6》性能优化案例分享
  5. Java实现文件拷贝,以及修改文件扩展名
  6. c语言 1累乘至100,C语言1乘到100怎么编写
  7. 烤仔星选·newsletter | 简析无常损失(Impermanent Loss)
  8. python编程 迷你世界_迷你世界迷你编程下载
  9. Centos7.9最小化安装与初始化环境配置
  10. python元组拆包