我的網站搞好了!

程式設計師cxuan發表於2023-02-06

最近有段時間沒有寫原創文章了,恰好這兩天正在翻閱歷史文章的時候,發現文章中的圖片竟然裂了?頓時冒了一身冷汗,因為每逢遇到這種情況,動輒需要花費一週的時間遷移圖片。。。。。。

當我直接訪問圖片 url 的時候,果不其然出現了令人震驚的一幕。

我一直用的 typora 寫文章,我甚至是尊貴的 typora vip 擁有者,但就是這麼一個人,竟然還在白嫖 ipic 預設的雲端儲存圖床,我自己都看 了。

tva1.sinaimg.cn 也就是新浪圖床這波把我整的太慘了,這也讓我更加堅定了想法:免費的總有各自的缺陷,還是付費得到技術支援的東西來的實在。

我發現 iPic 又換了新的圖床,但是我已經沒有繼續使用 iPic 的耐心了,果斷放棄。

由於遷移圖床工程量浩大,我甚至一度有不想幹了的衝動。不過我還是敗給了現實,現實就是跪著也得堅持下去。

但是今天這文章就寫 xxx 到這吧,憋屈 :-) 。

--- 第二天 ---

怎麼辦?這事兒還得幹啊,所以我就找尋各種辦法,決定了把圖床搞到七牛雲上去(絕無任何打廣告的想法),畢竟它們的圖床還是很穩定的,訪問也比較快。

於是我決定使用 PicGo + 七牛雲圖床作為圖片儲存工具,七牛雲好像有免費的 10GB 儲存空間,只是儲存圖片的話應該夠用,而且它們還有圖片壓縮功能。

如果只使用圖床功能的話,那麼圖片訪問速度也是需要考慮的因素,這就需要使用到 CDN 加速功能,CDN 加速需要自定義域名,這就要求我弄個域名讓圖床掛在域名下面。

既然都想到域名這裡了,那我塵封 30 年想要搞個網站的願望是不是該提上日程了?

說到上線網站,我簡直想罵死我自己,因為我曾經無數次的想要上線一個網站,卻都因為各種因素耽擱了,這次下定決心一定要上線一個網站,做不到我就一週不吃宵夜!!!對我來說這真是一件很殘忍的事情。

技術網站一般有兩種型別,一種是靜態網站,靜態網站不需要自己建站,直接使用第三方託管工具和模板即可,比如 jekyll ,hexo ,hugo 等,原始碼檔案會提前編譯好,需要的功能點比較少,請求資源少,訪問的時候速度比較快,不需要和資料庫互動,以靜態頁面為主;

動態網站一般就像是 CMS 這種內容管理系統了,這種系統需要你自己寫前端後端程式碼,然後自己部署在伺服器,需要和資料庫打交道,頁面請求資源多,頁面比較複雜。不過 CMS 也有一些開源專案,比如 wordpress ,halo 等,我這裡用的就是 halo 搭建的 CMS 網站。

上線一個網站,就需要準備域名、伺服器、建站程式碼、備案申請、備案申請後等一系列操作。

由於這不是一個建站過程帖,也不是一個建站推薦貼,只是我把網站搞好後寫的一個經驗彙總貼,所以一些過程寫的不是很完備。

關於域名

我之前一直斷斷續續的在各種網上上線準備,所以之前就已經申請過域名了,由於是小打小鬧自己建個網站把文章之類的搞上去,加點簡單功能,就沒有必要花銷太大,所以就申請了 cxuan.vip,比較便宜,一個月才 10 塊錢。

關於伺服器

出發點也是類似,現在後悔之前沒有白嫖阿里雲伺服器了,目前用的只是阿里雲很低端的機器,如果後續訪問量和內容上來的話再說。

建站專案

我使用的是 halo 這個開源專案,版本是 1.6 ,為什麼選擇這個專案?因為我認為這是一個比較成熟的專案,社群人數眾多,github 一直在有人維護,截止到目前 halo 2.2 也已經上線了,而且功能點比較多,基本上想要的都能滿足。為什麼選擇這個版本?我看到 2.0 之後就加了很多新功能,而且推薦的是使用 docker 部署,官方不再提供 jar 包透過服務的方式訪問,不過你可以把原始碼下載下來自己打 jar 包部署。

但是由於我在用 2.1 版本的過程中出現了很多問題,而且尚未解決,我在社群發帖也沒有人回答我的問題,所以還是簡單點使用老版本了。

備案申請

準備好域名伺服器就能提出備案申請了,備案申請需要很多資料,也有很多忌諱,而且備案申請後的稽核過程比較漫長。下面是我的備案過程。

比較人性的一點是,由於我買伺服器的初衷就想要上線網站,所以在備案的過程中沒有怎麼使用伺服器,於是阿里雲給我把使用的開始時間延期到了備案稽核成功的那一天,這點還是不錯的。

備案稽核後

備案稽核後需要在你的網站底部新增 ICP 備案號並連線至 ICP/域名資訊備案管理系統。image-20230205095757376

然後在網際網路站安全管理服務平臺填寫新版網站申請,這個稽核也需要等幾天,稽核的時候會有相關人員給你打電話,然後他們會大致檢視一下你的網站內容是否合規合法,再給你透過。如果你的網站涉及到評論功能的話,是否是稽核後才予以顯示,還需要填寫一個評估報告。

到這裡是否就完事了呢?

還沒有,如果你的網站搭建完成了,預設的是使用 http 協議進行訪問的,http 協議對安全性沒有保證,很容易被劫持(雖然我的網站是一個只有內容的小破站),但是安全性我們還是要保障一下的。網站想要透過 https 訪問,就需要有官方 CA 認證機構進行認證,阿里雲有免費的 https 證照可以申請使用,寶塔皮膚也可以授權證照,這個我沒有試過。

申請後需要把證照下載下來,下載完成後有兩個檔案,一個是 .pem 檔案,一個是 .key 檔案,我們需要將這兩個檔案上傳至伺服器中對應的路徑下,透過修改 nginx.conf 配置檔案配置 https。

我在配置 https 的時候花了一些時間,剛開始我不管怎麼配置發現透過 https 訪問後訪問的都是 nginx 主頁,後來發現我沒配置代理地址。。。。。。 彷彿自己是個傻子。完整的配置如下

server {
  listen       443 ssl;
  server_name  cxuan.vip;

  root html;

  index index.html index.htm;

  ssl_certificate pem 地址;
  ssl_certificate_key key 地址;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;

  location / {
    proxy_pass http://localhost:80;
  }
}

到這裡網站部署基本上差不多了,開始折騰圖床,圖床我是使用的七牛雲圖床,我打算再配置一下 CDN ,配置 CDN 的時候要用到需要加速的域名,使用場景是作為圖片小檔案使用,配置完成後的 CDN 加速配置如下。

現在我的圖片也可以透過 http 進行訪問了,但是我使用 chrome 瀏覽器卻發現網站訪問不到圖片,我換了個 safari 瀏覽器卻可以訪問,這是為啥呢?

原因是由於我現在的網站是 https 的,但是圖片卻是 http 協議的,當我們想要訪問 https 網站的時候,chrome 會自動把裡面的圖片等內容轉為 https 的,safari 卻不會,但是我還沒有配置 https 的圖床,所以訪問不到。所以現在需要配置一下圖床的 https 訪問。

圖床配置 https 就比較簡單了,在七牛雲域名管理,https 配置處,修改配置,把伺服器上 CA 認證的 .pem 和 .key 內容直接貼上去就好,等幾分鐘就行了。

還需要配置在 typora 上使用的圖片自動上傳工具 PicGo,進行圖床的相關配置,其中 accesskey 和 securitkey 在金鑰管理中可以看到,然後再設定響應的網址、圖床和儲存區域即可,配置完成後在 typora 中的影像頁面驗證一下圖片上傳即可。

至此,我這次上線內容基本上可以說算是整完了。

七牛雲上面好像還有一個圖片最佳化功能,能節省儲存空間和 CDN 流量,不過得花一點小錢。

然後我就把文章內容和圖片都一個個的放在了伺服器路徑下,花了很長時間。halo 有一件上傳 md 檔案的功能,這些文章內容都是一鍵上傳的,比較方便。

網站搭建完成後的效果如下。

其實網站也很素了,沒有太多頁面和功能,主要就是文章內容的彙總和整理,後續的個人文章會持續更新在網站上面,圖片內容幾乎都用了動漫人物做首頁,我現在也比較愛看動漫,而且我覺得畫漫畫是一件很棒的事情,如果有時間和機會的話,我也想要嘗試一下畫漫畫這事兒。

我自己設計了一個 Logo,這個 Logo 和我這個網站以及程式設計師一搭,有點意思。

網站的內容主要涉及作業系統、計算機網路、Java、C、彙編、計算機書評等內容,這也是我現在寫文章的幾個方向。每個文章最後都可以評論,不過要完整的填寫姓名和郵箱這些內容,這部分做的還不太好,也是後面需要最佳化的點。

最後,網站地址親自呈上

https://cxuan.vip/

歡迎各位小夥伴們來玩。

相關文章