网站性能优化这件事,说难ä¸éš¾ï¼Œè¯´ç®€å•也ä¸ç®€å•。我带过ä¸å°‘徒弟,å‘现大家最容易忽略的就是缓å˜é…ç½®ã€‚ä½ æƒ³æƒ³ï¼Œç”¨æˆ·æ¯æ¬¡è®¿é—®ä½ 的网站,æœåŠ¡å™¨éƒ½è¦é‡æ–°ç”Ÿæˆé¡µé¢ã€æŸ¥è¯¢æ•°æ®åº“ã€åŠ è½½å›¾ç‰‡ï¼Œè¿™å¾—å¤šæ…¢ï¼Ÿæ‰€ä»¥ç¬¬ä¸€æ¥å°±æ˜¯æŠŠç¼“å˜åšå¥½ã€‚
Nginx 的缓å˜é…ç½®å…¶å®žå¾ˆç›´è§‚ã€‚æ‰“å¼€ä½ çš„ç«™ç‚¹é…置文件,在 server å—é‡ŒåŠ ä¸Šç¼“å˜è§„åˆ™ã€‚é™æ€èµ„æºæ¯”如图片ã€CSSã€JS 文件,设置 expires 30d,告诉æµè§ˆå™¨è¿™äº›ä¸œè¥¿ä¸‰å天内都ä¸ç”¨é‡æ–°ä¸‹è½½ã€‚动æ€å†…容比如 HTML 页é¢ï¼Œç”¨ add_header Cache-Control “no-cache”,让æµè§ˆå™¨æ¯æ¬¡éƒ½æ¥é—®é—®æœåŠ¡å™¨æœ‰æ²¡æœ‰æ›´æ–°ã€‚é…置完之åŽè®°å¾— nginx -t æµ‹è¯•ä¸€ä¸‹ï¼Œæ²¡é—®é¢˜å† reloadã€‚æˆ‘æœ‰ä¸ªå¾’å¼ŸæŒ‰è¿™ä¸ªæ–¹æ³•æ”¹å®Œï¼Œç½‘ç«™åŠ è½½æ—¶é—´ä»Ž 3.2 ç§’é™åˆ°äº† 1.1 秒,效果立竿è§å½±ã€‚
光有æµè§ˆå™¨ç¼“å˜è¿˜ä¸å¤Ÿï¼ŒæœåŠ¡å™¨ç«¯ä¹Ÿå¾—ç¼“å˜ã€‚å¦‚æžœä½ ç”¨çš„æ˜¯ WordPress,装个 W3 Total Cache 或者 WP Super Cache æ’件,开å¯é¡µé¢ç¼“å˜åŠŸèƒ½ã€‚è¿™æ ·ç¬¬ä¸€æ¬¡è®¿é—®æ—¶ç”Ÿæˆå¥½çš„ HTML 会å˜èµ·æ¥ï¼ŒåŽé¢çš„人直接拿现æˆçš„,ä¸ç”¨æ¯æ¬¡éƒ½è®© PHP 釿–°æ¸²æŸ“。数æ®åº“查询也能缓å˜ï¼Œç”¨ Redis 或者 Memcached 把常用查询结果å˜åˆ°å†…å˜é‡Œã€‚我测试过,开å¯å¯¹è±¡ç¼“å˜åŽï¼Œæ•°æ®åº“查询时间能从 200 毫秒é™åˆ° 20 毫秒,åå€çš„æ€§èƒ½æå‡ã€‚
å†è¯´ CDN åŠ é€Ÿã€‚CDN å°±æ˜¯æŠŠä½ çš„é™æ€èµ„æºåˆ†å‘到全国å„地的节点,用户访问时从离他最近的节点拿资æºï¼Œè‡ªç„¶å¿«å¾—多。国内推è用阿里云 CDN 或者腾讯云 CDNï¼Œä¸€å¹´å‡ ç™¾å—钱,å°ç½‘站完全够用。é…ç½®æµç¨‹æ˜¯å…ˆåœ¨ä½ çš„ CDN æŽ§åˆ¶å°æ·»åŠ åŸŸå,CNAME è§£æžè¿‡åŽ»ï¼Œç„¶åŽè®¾ç½®ç¼“å˜è§„则。图片ã€è§†é¢‘è¿™äº›å¤§æ–‡ä»¶ç¼“å˜æ—¶é—´é•¿ä¸€ç‚¹ï¼ŒHTML 页é¢ç¼“å˜æ—¶é—´çŸæˆ–者ä¸ç¼“å˜ã€‚é…置完æˆåŽï¼Œåœ¨ WordPress 里装个 CDN æ’ä»¶ï¼ŒæŠŠé™æ€èµ„æºçš„ URL æ›¿æ¢æˆ CDN 域å。有个徒弟的网站,原æ¥åŒ—äº¬ç”¨æˆ·è®¿é—®è¦ 2.8 ç§’ï¼Œå¹¿å·žç”¨æˆ·è¦ 3.5 秒,上了 CDN 之åŽä¸¤åœ°éƒ½ç¨³å®šåœ¨ 1.2 ç§’å·¦å³ã€‚
最åŽè¯´è¯´æ€Žä¹ˆéªŒè¯æ•ˆæžœã€‚装个 Chrome æ’ä»¶å« Lighthouse,跑一下性能测试,能看到具体的分数和建议。也å¯ä»¥ç”¨ curl -w “@format.txt” -o /dev/null -s “https://ä½ çš„åŸŸå” è¿™æ ·çš„å‘½ä»¤ï¼Œçœ‹çœ‹é¦–å—节时间ã€ä¸‹è½½æ—¶é—´è¿™äº›æŒ‡æ ‡ã€‚优化å‰ä¼˜åŒ–åŽå¯¹æ¯”一下,心里有数。记ä½ï¼Œæ€§èƒ½ä¼˜åŒ–䏿˜¯ä¸€æ¬¡æ€§çš„æ´»ï¼Œè¦å®šæœŸç›‘控,å‘çŽ°é—®é¢˜åŠæ—¶è°ƒæ•´ã€‚
把这些都åšå¥½äº†ï¼Œä½ 的网站速度能æå‡ä¸‰åˆ°äº”å€ã€‚用户ç‰å¾—少了,跳出率自然下é™ï¼Œæœç´¢å¼•擎也更愿æ„ç»™ä½ å¥½æŽ’å。这钱花得值,这功夫下得也值。