服务器问题:我一直在努力提高https://www.winni.in网站的速度,并且遇到了一个很奇怪的现象。 如果有人可以,请解释一下。
我比较了Winni和Snapdeal的加载时间,发现Winni在连接时间内平均需要450ms,而snapdeal在连接时间内平均需要30ms。 尽pipe这两个网站都在AWS的新加坡地区举办。 我认为这个连接时间是因为延迟,就好像我从印度或澳大利亚访问Winni那么它下降到大约150ms或更less,但是snapdeal( www.snapdeal.com )持续低于30ms,不pipe从哪个地理位置访问它。
我附上从Pingdom截取的Winni和Snapdeal的截图,显示从纽约进行testing时的连接时间。 AWS中是否有什么东西可以减less连接时间,或者是因为某些服务器configuration问题。
Winni的服务器堆栈是:
延迟可以在网站性能中起重要作用,但这不是全部原因。 页面生成时间是另一个重要因素。 HTTPS需要几次往返才能build立连接,因此延迟可能会起重要作用。 HTTP / 2通过为每台服务器设置一次连接并行传输文件来解决这个问题。
另一个解决scheme或解决方法是使用内容分发networking,这是Snapdeal所做的 – 他们使用Akami,最古老和最知名的CDN之一。 这也许也是最昂贵的,我猜。 有几十个CDN可用 – Max,CloudFront等
您可以使用CloudFlare ,这是一个免费的CDN,可以和AWS一起使用。 通常页面仍然从服务器中获取,所以第一页的延迟不会下降,但是检索静态资源的延迟将会。 您可以拥有CFcaching页面,但是如果用户可以login,这是不实际的 – 您不希望非login用户看到从login用户的私有会话caching的页面。 使用CloudFlare的另一个好处是,如果你愿意的话,他们会自动为你做HTTP / 2。
无论你从哪里进入,他们都必须将他们的页面caching在Akami。 Akami可能比CloudFlare免费的有关页面caching更聪明一点,例如,如果发送了一个特定的cookie,或者它是一个POST,就不会caching它们。 他们可以在许多Akami边缘位置交替使用应用程序服务器。
我在这里写了一些关于AWS / Nginx性能的教程。 我会在CloudFlare CDN上发布最后一部分,当我有更多时间的时候,但是这并不难。