您在這裡

用國外代理服務器來使網站備案不中斷用戶訪問

James Qi 在 2015年1月22日 - 18:05 發表

  在把網站從托管獨立服務器向雲平台轉移的過程中,在國内還有一個備案轉移的問題,個人備案轉服務商比較好辦,單位備案轉服務商也還不難,但個人備案要轉為單位備案比較麻煩,需要先撤銷以前的備案,這個域名才能再重新備案,而且撤銷和重新備案的中間這段時間是不能放在國内服務器上訪問的,無論是老接入商還是新接入商,通信管理局會檢查服務器IP、網站内容、申報信息等。

  為了解決這個問題,不中斷網站的正常訪問,隻好把網站臨時放在國外的服務器上,如果數據量大,要搬遷到國外服務器也是一個麻煩事,今天嘗試了一下在國外服務器上簡單設置一個反向代理就可以實現域名不變而訪問依然放在國内服務器上的内容。

  例如以前的域名是www.abc.com,把解析從國内IP:1.2.3.4改為國外IP:5.6.7.8,在國外服務器上設置Apache的httpd.conf,用rewrite規則和proxy反向代理來跳轉或讀取國内服務器上的内容(國内服務器上站點内容臨時用另外一個域名例如abc.temp.com來訪問,也可以用同一個域名,隻是修改國外服務器上的/etc/hosts文件,讓國外服務器從國内服務器上獲取原始内容),以原有域名www.abc.com和國外IP 5.6.7.8的形式呈現國内服務器1.2.3.4上abc.temp.com的内容,讓用戶和通信管理局的檢查人員來訪問使用。

  具體實現辦法待以後整理完善後再發。這個辦法算是比較簡單的,國内用戶訪問速度上有影響,但總比中斷幾天訪問要好。

  附httpd.conf中的設置,注意先要安裝開啟rewrite, proxy等模塊:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.abc.com
ServerAlias www.abc.cn
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteRule ^(.*)$ http://abc.temp.com/$1 [P,L]
ProxyPass / http://abc.temp.com/
ProxyPassReverse / http://abc.temp.com/
</VirtualHost>

  用proxy是完全可以做到的,但國内用戶訪問的時候頁面數據需要從國内服務器到國外服務器再到國内用戶,繞得比較遠,又加了rewrite規則希望用戶隻是到國外服務器上讀取頁面文件頭部,而數據從國内服務器直接讀取,不知道這個辦法是否真能更快,先這樣設了試一試看。


  補充:阿裡雲備案客服打來電話,說以前的備案撤銷期間,是需要關閉網站的,即使放在國外服務器上,管理局審核人員如果發現可以訪問,也可能會駁回。這是說的另外一個域名,我上面這個還在辦理中,需要再等一等看後續進展。另外,我也會咨詢看能否把首頁改為隻顯示“正在備案中”或者“正在備案中,無法訪問”而保持網站的其它頁面依然可以訪問。

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。