主機無法訪問後學到了一些東西

上週五突然發現我無法訪問自己的博客了,但是國內的朋友可以訪問。心裏一驚:不會被封了吧?!

可是我的博客一向老實本分啊。關鍵是,我買的是香港主機,IP是新加坡的,境外主機被封的話難道不應該是國內用戶訪問不了,國外用戶可以訪問嗎?怎麼現在反過來了?所以很可能是主機公園——也就是主機供應商方面的原因,大概線路故障什麼的。更何況經過試驗,即便從國內訪問也無法登陸主機的cPanel管理界面,因此服務商方面故障的可能性很大。

我試着把自己的域名解析到別的網站IP,結果是我的域名可以正常指向別人的網站。因此看來域名沒有問題,是IP已經不可用了。

聯繫主機公園幾天都沒收到回覆,遂決定換主機服務商,搬家。

共享主機和獨享主機

因爲我用的是共享主機,所以如果網站真的被封的話,一個可能原因是這臺主機上有其它站點“作惡”,導致這臺主機的IP被封,於是主機上的所有站點都無法訪問。藉此機會我也瞭解到了共享虛擬主機(Shared Hosting)和獨享虛擬主機(Virtual Private Server,一般簡稱爲VPS)的概念。

共享虛擬主機是多個站點共享一個IP,用戶無法通過ssh登錄主機,只能通過主機服務商裝好的cPanel等圖形界面工具來管理站點,可定製化程度很小。服務商提供的存儲和流量也相對較少,但勝在省錢。共享主機上的站點域名解析往往採用CNAME記錄類型,即別名解析,也就是用戶的站點域名先是解析到主機服務商的域名,然後再由主機服務商提供具體的IP地址,這樣主機服務商變更IP地址後就不用挨個通知各個站點的站長去修改自己的域名解析記錄。

獨享虛擬主機(VPS)相當於用戶擁有了整臺虛擬主機,也就有了獨享的公網IP地址。用戶擁有主機的root賬戶,可以通過ssh登錄,隨便搗騰主機的操作系統和應用軟件。不過相應地價格也就比較貴。用戶爲了搭建一個網站也要做更多的工作,因爲一臺嶄新的獨享主機上往往只裝好了操作系統,像數據庫、Web服務器、PHP和WordPress這些東西都要自己安裝配置(當然往往也可以從別的用戶已經配置好的主機鏡像複製一份)。在擁有獨享靜態IP的情況下,獨享主機的域名解析一般就採用A記錄類型,即記錄解析,也就是域名和IP地址靜態綁定。

主機服務商

我現在用的新主機是在Vultr上買的VPS。價格是每個月5美元,一年算下來要比原來的共享主機貴了一倍。不過有一臺自己專用的服務器,可以用ssh隨便搗騰,對程序員來說是很爽的。Vultr提供的一些IP地址已經被封了,不過可以迅速創建新主機直到被分配到一個可用的IP,然後將舊主機的快照應用到新主機即可。下一節馬上會講到如何檢測IP是否可用。

VPS提供的存儲和流量一般比共享主機多,尤其流量會多很多。之前用共享主機時,爲了節省站點存儲和流量,我將圖片都放到了UCloud的免費對象存儲上。然後爲了能夠讓WordPress媒體庫支持外鏈圖片,我還寫了一個External Media without Import插件。現在Vultr給我分配的存儲是25GB,流量是1TB,比我之前的共享主機加UCloud對象存儲的配額總和還多,且超額流量的收費也比UCloud便宜(當然就我這麼個小站肯定不會超1TB)。因此我可以放心地將圖片存放在站點服務器上,那個插件也暫時用不上了。

(說句題外話,因爲插件已經有一定的用戶量了,並且用戶也給我提了不少反饋,尤其對批量添加的需求很強烈,所以我還是會繼續改進這款插件的。)

言歸正傳,主機公園當然也提供VPS,但是價格比Vultr貴一些,提供的存儲和流量也不如Vultr多。這也就罷了。關鍵是!從前幾天起我就給主機公園提工單,發QQ消息,但直到我寫這篇文章時都沒收到任何回覆!去年用得還好好的,工單回覆也挺及時,就這次不知道怎麼了。這個月我纔剛續了一年的費用啊!後來在知乎上看到別的主機公園用戶也遇到了同樣的問題,不知道主機公園是不是最近遇到了鉅變。

更關鍵的是!我登錄不進cPanel了!這意味着我無法獲取站點的完整拷貝。還好目前網站內容還不多,幾個月前我本地也有一份數據庫拷貝。連上vpn後,依靠WordPress自身後臺左側菜單欄的工具 -> 導出導入功能才實現了站點內容的遷移。儘管如此,也還是折騰了一天。

於是我學到了重要一課:不要完全依賴主機服務商提供的備份功能,一定要定期在自己本地或是別的地方存放一份完整的站點拷貝,不然什麼時候服務商一聲不吭玩消失了就真是欲哭無淚。WordPress自帶的導出導入工具也並不完備,不少內容還是要通過直接操縱數據庫來遷移。

給Vultr做個廣告吧,有興趣自己建站搭服務器的讀者,推薦點擊此鏈接註冊Vultr賬號併購買主機服務。Vultr支持支付寶付款。

檢測網站地址是否可用及訪問速度

最土的辦法是請國內外的朋友訪問一下你想檢測的網站。

更專業一點的方法是利用網上的一些在線測試工具。比如下面幾個網站可以從全球不同位置向你指定的網絡地址發包,對是否可訪問、響應速度和丟包率等指標進行測試:

下面兩個網站還可以測試中國境內各個省份對指定站點的訪問情況:

Apache和WordPress的部署

新主機的操作系統是Debian,可以通過apt-get方便地完成LAMP的安裝部署。Apache模塊的啓用也可以通過a2enmod命令執行,而不用自己改配置文件。但還是出現了一些意外情況。

一是爲Apache添加SSL,使網站支持https。這需要啓用Apache的OpenSSL模塊並做相應配置,還需要生成證書。站點是否可信需要由第三方機構證明,據說這種機構往往是收費的。幸運的是,還是有一個免費的:Let’s Encrypt。可以按照這個網站的Getting Started來爲自己的站點添加SSL支持。這個過程會用到一個叫Certbot的工具。它可以將配置過程自動化,不用用戶手動修改什麼配置文件。

二是URL中始終要帶有index.php才能訪問博客中的文章。可是Apache的rewrite模塊已經開啓,我也將之前寫的WordPress環境搭建日誌提到的.htaccess文件放在了網站根目錄。後來發現是需要在/etc/apache2/sites-available/目錄下的000-default.conf文件和000-default-le-ssl.conf中加入下面一段配置:

<VirtualHost *:80>
  ...
  # 站點根目錄
  <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
  </Directory>
  ...
</VirtualHost>

三是安裝和啓用WordPress插件時,WordPress需要獲取站點的ftp訪問權限。我採用了vsftp。這需要一些配置。詳見這篇文章:How to configure WordPress for automatic ftps updates using vsftp in Ubuntu

搗騰一天之後終於在新主機上搭建好網站並將內容基本遷移完畢。雖然出了這麼一檔子事,但也藉此機會學到了些東西。

本文在我的獨立博客上的地址:http://zxtechart.com/2018/03/26/learnt-sth-after-site-is-blocked/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章