午夜视频-在线成人-亚洲中文字幕一区-强开小受嫩苞第一次免费视频-黄色小说在线看-www精品-www.三级-蜜桃传媒一区二区-av手机在线-一级黄色片免费-国产中文字幕在线播放-国产精品免费一区二区三区都可以-他禁欲太久了h1v1双处-五月精品-亚洲人成在线播放-宅男在线视频-欧美激情第二页-91精品国产一区-亚洲第一天堂网-色5月婷婷-国内毛片毛片-亚洲精品久久久久久一区二区-一级激情片-人人干人-日韩岛国片-亚洲成a人片77777kkkk-天堂a视频-www.看片-女人喷液视频-亚洲在线观看av

成航先森 成航先森

成都航院計算機系一個學生的個人記錄

 

WordPress技巧

最新文章

WordPress技巧
當前位置: 首頁 ? 建站分享 ? WordPress技巧 ? 網站從http轉為https折騰記錄

網站從http轉為https折騰記錄

編輯:狂族晨曦 來源:WordPress技巧 日期:2020-11-15 閱讀: 2,513 次 2 條評論 » 百度已收錄

先森之前先發了一篇博文,講述了一些想從http轉為https做的一些準備:網站http轉為https之始,從七牛到騰訊云

前進的道路從來都不是一帆風順的,先森在切換的過程中也是遇到了一些問題,這里簡單的記錄一下歷程。

七牛轉騰訊云

七牛令先森最喜愛的功能就是圖片的處理功能了,現在是騰訊云的對象存儲COS也支持直接圖片處理,所以先森才開始打算從http轉為https。

針對七牛的圖片處理,先森以前還是寫過幾篇博文的:

WordPress百度UEditor編輯器自動添加七牛云儲存裁剪代碼

將WordPress歷史文章中所有圖片加上七牛裁剪水印代碼

七牛圖片處理樣式的正確使用方式

當然,當時的用法比較簡單粗暴,直接用了一大段的圖片處理參數,而正確的方法應該是將固定的處理方法保存為處理樣式,直接在圖片后面調用圖片處理樣式,這個先森也在上面的最后一篇博客中寫到了。

先森使用圖片處理,最主要的用途還是加速網站打開速度。將不同位置的圖片縮小至合適的大小,讓圖片的體積盡可能的減小,以實現加快網站訪問速度。先森最喜歡的一點,還是文章中的圖片,結合燈箱插件,讓圖片在未點擊時呈現縮放并降低圖片質量的狀態,點擊后顯示原始大小及質量。

這么好的功能先森當然不想放棄,先森網站的各種縮略圖都是不同的大小,所以有不同的樣式。本以為從七牛的圖片處理換到騰訊云的圖片處理,相關規則還得自己研究半天才能實現同樣的效果,結果圖片處理的規則竟然非常兼容。

COS圖片處理規則 -1

COS圖片處理規則

除了需要添加水印的規則,其他的規則直接將七牛的復制過來就可以直接用了,簡直方便的一批。

COS新增樣式時,添加水印圖片竟然只能上傳圖片,而不能從存儲桶里直接選擇,這一點有些體驗不佳。而自己通過自定義規則去添加水印圖片的話,又會比較麻煩:

使用自定義參數添加水印圖片需要滿足3個條件 -2

使用自定義參數添加水印圖片需要滿足3個條件

不過研究一下還是可以完成操作,總的來說,這個切換過程還是非常滿意的。

自適應http和https

先森前面的文章也寫到過,為了避免切換到https有問題,先森切換的時候是沒有開啟強制跳轉到https的,所以這里就需要做到http和https的兼容。

先森想到的兼容方式就是將網頁中的‘http://’換成‘//’,這樣就會根據訪問的協議自動顯示相應的協議。

要實現也很簡單,先森下面這篇博客中講到了“WordPress七牛CDN代碼版”:

七牛圖片處理樣式的正確使用方式

先森這里把這個代碼改吧改吧就能實現https的兼容了。

//WordPress七牛CDN代碼版
function QiNiuCDN(){
    function Rewrite_URI($html){
        /* 前面是需要用到七牛的域名,后面是需要加速的靜態文件類型,使用分隔符 | 隔開即可 */
        /* 這里先森小改了一下,兼容https */
        $pattern ='/http[s]{0,1}:\/\/(www\.|)capjsj\.cn\/(wp-|ueditor|avatar)([^"\']*?)\.(jpg|js|css|gif|png|jpeg|ico|cur)/i';
        /* 七牛CDN空間地址,請自行替換成實際空間地址*/
        /* 先森這里又換成騰訊云COS的地址了 */
        $replacement = '//cos.capjsj.cn/$2$3.$4';
    $html = preg_replace($pattern, $replacement,$html);
    /* 增加了一次替換,把http://替換為// */
    $html = preg_replace('/http:\/\/www.lzhcjx.cn/i', '//www.lzhcjx.cn',$html);
    return $html;
    }
    if(!is_admin()){
        ob_start("Rewrite_URI");
    }
}
add_action('init', 'QiNiuCDN');

這個時候需要注意,WordPress后臺登錄的時候,需要使用http,因為在設置-常規處的WordPress地址與站點地址還未修改,為了http與https的兼容,所以當時也并未修改。但若要修改,這里還有個坑。

全站HTTPS

先森經過一段時間的測試,發現https沒有什么問題,所以就打算將網站開啟HTTP到HTTPS的強制跳轉,并且把后臺配置中的站點地址也改成HTTPS,但是先森修改后,竟然遇到了后臺地址無限跳轉。

HTTPS無限302跳轉 -3

HTTPS無限302跳轉

經過一番搜索,發現是需要在WordPress網站根目錄中的wp-config.php中添加配置進行解決:

/* 解決https無限跳轉*/
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

添加在文件開頭處即可,藥到病除。

CDN緩存命中率低

先森閑來無事,跑去17ce測試了一下網站的GET速度,結果大出先森預料,竟然全國通紅(忘了截圖)。

先森覺得很奇怪,先森這網站這么久了沒更新了,按理說應該訪問到的都是緩存才對啊,然后先森進行了排查。

先森就從首頁排查起,先森在非放置本站的服務器上curl首頁,結果發現經常是 X-Cache-Lookup: Cache Miss,但是連著刷兩次就會變成Cache Hit,但是再過幾秒curl又變成Cache Miss了,這就有點奇怪了。仔細看了一下響應頭,結果先森發現 Cache-Control: must-revalidate, max-age=3,這就表示緩存3秒啊,怪不得連著刷能命中緩存,接下來就要看這個響應頭是怎么配置的了。

不過講道理,騰訊云的CDN判定是否命中緩存的規則是看X-Cache-Lookup是否為Hit From MemCacheHit From Disktank,直接顯示Cache HitCache Miss是很奇怪的。

X-Cache-Lookup:Hit From MemCache 表示命中 CDN 節點的內存。

X-Cache-Lookup:Hit From Disktank 表示命中 CDN 節點的磁盤。

不過先森也去查了一下,Cache Hit也是正常命中緩存了,也不需要過多的去糾結。

這個僅緩存3秒的響應頭,先森自己記得是沒有配置的,可能比較容易出問題的可能是WordPress中使用的緩存插件。先森使用的緩存插件是WP Super Cache,所以首先就是懷疑這貨。

百度大法好,果然是這貨影響的。默認情況下,WP Super Cache 返回的 Cache Control Header 固定為: cache-control: max-age=3, must-revalidate ,不管你在插件設置中設置的緩存超時時間是多久。

修改起來也簡單,只要在WordPress根目錄的wp-config.php增加配置即可:

define('WPSC_CACHE_CONTROL_HEADER','max-age=3600, must-revalidate');

參考:WP SUPER CACHE 緩存插件

但是,如果CDN的緩存也是繼承源站的響應頭,那先森在騰訊云CDN的緩存配置豈不是沒有用了?

所以還是得研究一下什么情況下,CDN會繼承源站的配置。

騰訊云官方文檔對高級緩存配置的說明 -4

騰訊云官方文檔對高級緩存配置的說明

經過一番查閱騰訊云官方文檔,發現是開啟高級緩存配置時,CDN會對比源站響應頭中的max-age值。先森看了一下自己CDN的配置,果然是開啟了高級緩存配置的,趕緊關閉:

關閉高級緩存配置 -5

關閉高級緩存配置

這個配置估計是為了迎合一些對自定義配置要求較高的用戶,先森這種小站就沒必要開啟了。

CDN對no-cache或者no-store不緩存 -6

CDN對no-cache或者no-store不緩存

需要注意的一點是,默認情況下,CDN也不會對no-cache或者no-store的資源進行緩存,所以如果有遇到始終無法緩存的情況,可以檢查一下cache-control是否配置了禁止緩存。

先森最終是即修改了WP Super Cache的配置,將max-age改為了3600,即1個小時;CDN側是關閉了高級緩存配置。至于為什么關閉了高級緩存配置的情況下,還要修改插件的緩存配置,那是因為max-age還會影響到客戶端瀏覽器的緩存配置,3秒太短了,所以還是修改一下比較好。

修改之后,過了一段時間,先森再進入17ce進行GET測試,測試的結果就能讓先森接受了:

17ce測速 -7

17ce測速

總結

先森在網站開啟HTTPS中,可能還有一些比較小的坑,先森隨手就解決了,這里就沒有記錄了。網站加了CDN后,訪客具體的訪問速度先森實際上也不得而知,因為先森自己打開網站覺得還是很快的,結果用17ce一測,全紅,這個17ce的數據也不知道與實際情況是否匹配。如果有訪問比較慢的,還希望能夠留言告訴先森,您的地域與具體訪問的URL。

歷史上的今天:

標簽:
除特別注明外,本站所有文章均為成航先森 www.lzhcjx.cn 原創,本文共3834個字
轉載請注明出處來自http://www.lzhcjx.cn/http_to_https.html
已有 2 位"計工"發布了激烈的評論,還有N多人圍觀笑而不語評論
的頭像
歡迎發表評論
取消評論

表情
疑問調皮傷心摳鼻黑線微笑可愛奸笑震驚嚇到了撇嘴大兵忍不住笑笑狂罵狂怒噢?鼓掌酷⊙﹏⊙b汗鄙視大哭嘿嘿

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
  1. 的頭像

    我之前也折騰了很久,后來在寶塔里搞定了

    2021-05-07 10:15 回復
  2. 的頭像
    不凡:

    用了CDN就沒必要用靜態緩存插件,CDN的緩存規則中無需添加不緩存php文件類型,只添加要緩存的文件類型即可,比如圖片文件格式和js、css、woff等等。

    2023-04-26 11:12 回復
官方微信
發表評論 返回頂部
 


主站蜘蛛池模板:
久久性视频
|
黄色一级大片
|
人人妻人人澡人人爽人人dvd
|
国产精品一级
|
国产亚洲色婷婷久久99精品91
|
蜜臂av|
91调教打屁股xxxx网站
|
国产视频久久久
|
男女做爰猛烈高潮描写
|
成人一区二区三区
|
麻豆app|
国产免费一区二区三区
|
亚洲国产一区二区三区
|
成人18视频免费69
|
超碰免费在线观看
|
黄色美女视频
|
久久久久久91香蕉国产
|
另类天堂
|
一区二区三区在线观看视频
|
欧美日韩国产一区二区
|
精东影视
|
黄色网址在线播放
|
日本精品视频
|
成人免费网站
|
最新av在线
|
91嫩草欧美久久久九九九
|
午夜看片|
免费中文字幕
|
久久午夜视频
|
老女人av|
华丽的外出在线
|
麻豆视频在线播放
|
亚洲天堂中文字幕
|
尤物在线
|
扒开腿添十八视频免费
|
爱爱小视频
|
久久蜜桃
|
日本欧美久久久久免费播放网
|
成人免费看片'在线观看
|
午夜视频网
|
婷婷色网
|
成人精品在线观看
|
日日摸日日添日日碰9学生露脸
|
黄色电影免费看
|
久久久久久久久久久久久久久久久久
|
苍井空无码
|
亚洲午夜久久久久久久久久久
|
黄色电影在线免费观看
|
欧美一卡二卡
|
少妇高潮久久久久久潘金莲
|
黑人一级片
|
人人艹人人|
色天堂视频
|