chrome的timeline中stalled问题解析

在公司国做一个运营活动,上线后PM总是抱怨访问速度过慢,影响运营效果。然而从前端的角度来说我已经做了如下优化: css、js合并压缩、图片压缩、雪碧图、静态资源全部上CDN。但是依然很慢,实在s是困惑,通过chrome的timeline分析,发现有些请求确实很慢,但是大部分时间消耗在stalled阶段。如下图:

chrome-stalled

下文来分析具体原因。


什么是stalled呢?下面是一段比较容易懂的解释:

Time the request spent waiting before it could be sent. This time is inclusive of any time spent in proxy negotiation.Additionally, this time will include when the browser is waiting for an already established connection to become available for re-use, obeying Chrome’s maximum six TCP connection per origin rule.

也即是从TCP连接建立完成,到真正可以传输数据之间的时间差。先让我们要分析TCP连接为什么要等待这么久才能用?我用Wireshark抓包发现(如下图),TCP连接过程中有多次重传,直到达到最大重传次数后连接被客户端重置。

阅读剩余部分 -

将Cmder添加到系统右键菜单中

下载cmder

1、把 Cmder 加到环境变量 把Cmder.exe存放的目录添加到系统环境变量; 加完之后,Win+r一下输入cmder,即可。

2、添加 cmder 到右键菜单:环境变量添加后,在任意文件夹中即可打开Cmder,上一步的把 Cmder 加到环境变量就是为此服务的, 在管理员权限的终端输入以下语句即可:

Cmder.exe /REGISTER ALL

3、为Cmder.exe创建快捷方式,右击Cmder.exe选择“创建快捷方式”点击即可,以后打开Cmder.exe只要点击桌面对应的快捷方式即可

阅读剩余部分 -

nginx中proxy_set_header Host $host的作用

nginx为了实现反向代理的需求而增加了一个ngx_http_proxy_module模块。其中proxy_set_header指令就是该模块需要读取的配置文件。在这里,所有设置的值的含义和http请求同中的含义完全相同,除了Host外还有X-Forward-For。


Host的含义是表明请求的主机名,因为nginx作为反向代理使用,而如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败【默认反向代理服务器会向后端真实服务器发送请求,并且请求头中的host字段应为proxy_pass指令设置的服务器】。


同理,X_Forward_For字段表示该条http请求是有谁发起的?如果反向代理服务器不重写该请求头的话,那么后端真实服务器在处理时会认为所有的请求都来在反向代理服务器,如果后端有防攻击策略的话,那么机器就被封掉了。因此,在配置用作反向代理的nginx中一般会增加两条配置,修改http的请求头:
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
这里的$http_host和$remote_addr都是nginx的导出变量,可以再配置文件中直接使用。如果Host请求头部没有出现在请求头中,则$http_host值为空,但是$host值为主域名。因此,一般而言,会用$host代替$http_host变量,从而避免http请求中丢失Host头部的情况下Host不被重写的失误。

 

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。标准格式如下:X-Forwarded-For: client1, proxy1, proxy2。

 

阅读剩余部分 -

宝塔 Nginx反向代理/CDN缓存加速设置

宝塔面板自带了反向代理设置, 通过Nginx反向代理我们可以让网站达到加速的效果, 如果开启缓存还可以减少源服务器带宽压力,现在简单说说这个设置.

ZMg4e.md.png

以openos.org为例
若www.openos.org源服务器为A, 反代节点服务器为B和C.

阅读剩余部分 -

#教程#BT宝塔面板-反向代理怎么操作?

前言

宝塔面板大家伙儿再熟悉不过,永久免费,童叟无欺。

部署完LNMP后,就可以开始设置网站反向代理,也不需要有太多的建站技术,就可以简单地为某站点做加速镜像。

也是因为前几天找英文文献,发现国内访问一个文献站极其困难,自己用$$R也算就了,但是小伙伴也要用,总不能挨个给装$$R吧,所以就给那个文献网站做镜像啦。

应用场景

  1. 用来加速CDN辣鸡,并且服务器路由十八弯的网站。
  2. 用来访问404网站(不建议
  3. 开启缓存,保护主站神圣不可侵犯。就是主站用一个谁也不知道域名,比如htfsghsseres.ga(瞎打的)为我们的主站域名,然后用abc.com来反代htfsghsseres.ga。
  4. COPY别人的网站,而且还可以利用subs_filter替换掉被代网站的广告(本站对窃取他人劳动成果的行为表示谴责

阅读剩余部分 -

Nginx 基础篇(序)---转发代理服务器与反向代理服务器

说到代理服务器,大部分人都应该比较熟悉了。记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站。但是提到反向代理服务器可能大部分人就比较陌生,对于一般的代理服务器与反向代理服务器的区别估计也不是那么清楚。

    因工作需要就研究了一下,搞清了是怎么回事,这里做个笔记,也为大家所共享。

    代理服务器通常分为两类,即转发代理(forward proxy)服务器和反向代理(reverse proxy)服务器。转发代理服务器又通常简称为代理服务器,我们常提到的代理服务器就指的是转发代理服务器。

转发代理服务器

    普通的转发代理服务器是客户端与原始服务器之间的一个中间服务器。为了从原始服务器获取内容,客户端发送请求到代理服务器,然后代理服务器从原始服务器中获取内容再返回给客户端。客户端必须专门地配置转发代理来访问其他站点,如在浏览器中配置代理服务器地址及端口号等。

    转发代理服务器的一个典型应用就是为处于防火墙后的内部客户端提供访问外部Internet网,比如校园网用户通过代理访问国外网站,公司内网用户通过公司的统一代理访问外部Internet网站等。转发代理服务器也能够使用缓存来缓解原始服务器负载,提供响应速度。

反向代理服务器

    而反向代理服务器则相反,在客户端来看它就像一个普通的Web服务器。客户端不要做任何特殊的配置。客户端发送普通的请求来获取反向代理所属空间的内容。反向代理决定将这些请求发往何处,然后就好像它本身就是原始服务器一样将请求内容返回。

    反向代理服务器的一个典型应用就是为处于防火墙后的服务器提供外部Internet用户的访问。反向代理能够用于在多个后端服务器提供负载均衡,或者为较慢的后端服务器提供缓存。此外,反向代理还能够简单地将多个服务器映射到同一个URL空间。

反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

阅读剩余部分 -

meiyoutongji