网站第一次访问慢的原因

一、tcp协议握手的问题

http和https 传输层均为TCP,所以在正式传输数据前,TCP都会三次握手建立链接

HTTP是建立在TCP上,TCP握手会占用一定时间,而之后因为nginx设置,即该链接并没有被关闭(http长连接),一定时间内访问不用握手。

https第一次访问会比较慢,原理同上,但建立链接时应该加上SSL握手时间。

http 和https存在非常明显的差异,http和https第一访问用时性能差距十分明显,但第二次访问用时差距不大了。第一次差距明显的原因是SSL握手较为耗时,而第二次访问时间均下降并相差不多的原因是因为保持了Http长连接均未再次握手,所以差距不大。nginx 对ssl握手后的状态用session ID 进行了缓存,https访问不会差异较大。

以上内容来自:https://blog.csdn.net/m0_37263637/article/details/80903605

因为发现第一次访问站点特别慢,之后又正常,所以研究一下,但目前还没找到什么有效方法........有好方法继续更新本文

二、php-fpm运行模式的问题

握手问题暂时没办法,但是可以把php-fpm的动态改成静态,这样减少自动回收进程的事件,让php-fpm更快的响应,略微比原来好一点,下面复制几个图片,看看什么叫把动态改成静态

这个是宝塔面板里面,php设置里面,性能调整,把运行模式从动态改成静态,当然如果没有装宝塔的,直接改配置文件也可以,这个自己百度吧。上图来源已经有水印了,我就不引用了。

三、加载页面同时缓存变量问题

又发现一个问题,就是w3 totlal cache 这个插件里面的page cache功能里的,要把延迟生成缓存选上,这个也是造成首次访问网站加载速度过慢的原因。因为首次加载的时候提取缓存等变量同时进行,让加载速度反而慢,所以要选上late cache这个,让页面先加载,后提取缓存变量,不知道理解的对不对哈。

四、googlefonts的问题

这是一个大坑啊,刚开始其实已经禁用谷歌字体了,后来发现谷歌字体能访问,而且wpjam插件里面有个禁用前台加载语言包的功能,我以为也包括了禁用谷歌字体,结果........发现qq浏览器第一次访问本站首页时就卡在那里,仔细一看状态栏,fonts.googleapis.com.....,我靠,谷歌字体偶尔还是要抽一下,虽然只有1-2分钟,这也太影响体验了,马上禁用谷歌字体。