製作網站的心得

 

按此返回基督教詩歌分部練習資源

 

第一步:設計網站的architecture

 

要設計網站的architecture,就要先決定網站的內容,以這個網站為例,它是一個分享資源的網站,要儲存很多的檔案,但下載這些檔案要不要登入呢?一開始我是想整一個有帳戶的網站,有使用者名稱、密碼和電郵地址等,但當我想到如果整得不小心,會有帳戶資料外洩,還要做pen testSAST等,實在太麻煩了!所以最後決定整一個read only的網站便算。

 

接著便要想一想這個網站有沒有動態的內容,歌曲的列表便是動態內容,之前想過列表的每一列可在DB tableloop出來,但列表只得兩欄實在太簡單,好像不值得用DB,所以算了吧!連DB都慳返。

 

基於以上考慮,使用static HTML便足夠,連JavaScriptbackend program都不用寫。所以這個網站的architecture只需要一個web serverfile server,不需要app serverDB server。我設計過這麼多的architecture,都是第一次見這麼簡單的!

 

第二步:決定用什麼工具寫HTML和分享檔案

 

市面上有很多專業的工具可以寫HTML,不過你和我在家裏都有的就是Microsoft WordExcel,它的好處是what you see is what you get和係人都識用,所以我決定列表就用Excel來輸入,之後copy & pasteWord裏面,連其他文字一齊format,最後另存為UTF-8HTML

 

至於分享檔案,我首選是Google Drive,一個Google帳戶便可以有15GB免費的Google Drive,實在太著數了,這個網站的分享檔案也只用了1GB,把電腦上的folder一次過drag & dropGoogle Drive便成了,不過最痛苦便是要將每一個folder的分享連結都copy出來放到Excel裏。

 

第三步:建立網站的infrastructure

 

在建立網站的infrastructure時有幾個步驟,每個步驟都要考慮成本和容易性,以下詳細說明。

 

首先要有個domain name,很多年前已在HKDNR買了個hackker.hk,所以已不記得當年怎樣做。有了domain後就要有DNS server,這個可以用Cloudflare,它是免費並提供很多實用的服務,它有兩個DNS server送給你,只要在HKDNR裏輸入便可以讓hackker.hk使用Cloudflare DNS

 

根據architecture design,下一步就要有web serverfile serverfile server已被Google Drive解決了,只有web server要找個data centerhost,現時最平和最方便當然是用Cloud,我比較熟AWS,而且有一張過期的証書,可以學會至用。我需要一部Linux機並裝上Apache web server,所以我先在AWS us-east-1 (N. Virginia)創建和時租了部EC2,為何選擇us-east-1而不是ap-east-1 (HK)?因為us-east-1EC2是最平的,反而HK的很貴,但連線速度會比HK慢,不過可以用Cloudflare proxy來解救,由香港連去近香港的Cloudflare serverproxy到美國會快過香港直連去美國。要怎樣的EC2規格是有學問的,因為只需要行Apache web server,所以選t3.micro (2 CPU1GB RAM)OS選最平的Amazon Linux,硬碟選gp3 8GB,一切都要用最少要求,因為Cloud的好處就是elastic,將來不夠用再升級,不需要現在就用最貴最好的,這可慳返不少。

 

Set好部EC2、裝了Apache web serveruploadstatic HTML之後便要把Cloudflare接上EC2Elastic IP,這需要兩個步驟,首先要設定EC2上的security group即是firewall只准Cloudflare IP連接EC2HTTPS,之後在Cloudflare DNS上加返個A-recordproxy EC2Elastic IP。本來HTTPS是要買SSL cert(很貴),但由於用Cloudflare proxy的關係,它會送你universal cert,太著數了!

 

至於load balancerDR,老實說,這個網站我不覺得人流會這麼多,而且是個非常簡單的網站,根本不用load balancingHAAWSavailability已經很高,Cloudflare又有提供cachingAlways Online的服務,所以不用付費給load balancerDR。另外關於page & event tracking,不用Google Analytics了,Cloudflare已自動提供page visit數據。最後關於網站的聯絡電郵,不用整一個email server,只需要用Cloudflareemail routing轉寄[email protected]的電郵到我另一個實體電郵地址便可。

 

第四步:設定網站的security

 

雖然這個網站沒有會員帳戶,不會吸引黑客入侵,但還是要有mindset去做好每一個網站的保安。

 

首先想一想每個網頁會不會發生XSSSQL injectionsession hijackOWASP安全性問題,這個網站沒有JavaScript、沒有application也沒有DB,自然不會有這些問題,所以pen testSAST都不用做。之後想想有沒有call其他網站的資源,例如GAGTM和其他CDN,這個網站當然也沒有,所以CSP都不用set。不過還有幾樣保安是要做的,以下詳細說明。

 

第一是AWSCloudflare帳戶都要有MFA登入,它們都支援Google Authenticator,這可避免帳戶盜用。

 

第二是EC2上的security groupinbound rule只開放SSH給管理員的IP,和HTTPSCloudflare IPoutbound rule開放給需要call出去的server,其他一律封殺。

 

第三是WAFanti-DDoSrate limit,可用Cloudflare免費的服務。至於Cloudflare上的bot detection,我怕會影響到search engineAI,所以關掉,但可以沒有bot detection是因為已有WAFanti-DDoSrate limit和網站本身沒有帳戶等功能。 另外,可用WAFCustom Rules去製作網站資源URLwhitelist,非白即封,這可減少web serverHTTP 404 traffic和增加安全性。

 

最後是要在Cloudflareset一些notification,例如當我的網站down了或被攻擊都會收到電郵通知等。

 

第五步:讓網站可被搜尋

 

當完成所有設定後,便要讓GoogleBing可搜尋新的網站,只要到Google Search ConsoleBing Webmaster Tools登記網站的URL即可,另外還要弄一個robots.txtsitemap.xml來告訴search engine怎樣搜尋網站。

 

最後,這個網站每個月成本只需HK$100。以上便是本人的心得,如有任何問題,可聯絡本人[email protected],電郵內請提供姓名和所屬教會,否則本人不會閱讀和回覆。

 

Copyright (c) 2025 Hackker Wong. All rights reserved.