這兩天的開發有點遲滯。
從上周開始的第一階段研發,其著重點在於搞清楚 Google Map API 的應用與實作練習,作出來的網頁系統,是完全不管資料結構和使用者界面的那種快速打謎 (dummy) 成品。等到利用打謎系統當作基準,探討出未來網頁服務架構和功能需求時,打謎系統就顯得不夠理想,而開始要徹底翻修了。
其中,更改最多的就是 controller 和 routing rule 這兩部份。聽起來變動不多,但因為當初打謎系統的 Javascript 部份是 hard code 一些 AJAX request URI,所以只要改變了連結位置,就得要從頭檢查哪些 function 有應用到,哪些呼叫傳值有改變,稍一不慎沒有注意到差異,XmlHttpRequest 就是跑不出預期的回應結果。
這種 debug 過程非常傷心傷肝傷腎傷腦,所以只要遇到死迴圈問題無解,我就會暫時先停下開發的腳步,回頭和我兒子玩耍半天。若是還有一絲保留體力,可能等兒子上床睡覺以後會繼續奮戰,不過多半時候白天努力上班與下班陪伴兒子遊戲,耗損去我百分之九十九的資源,於是只得將 TWW 擱置一旁,無暇顧及。
今晚好好地修整了一下打謎系統,將一些功能恢復到修改 routing rule 先前的狀態,於是又能夠繼續開發下去了。
今天新找到的課題是: Dynamic DNS + VirtualHost + Subdomain
(1) Dynamic DNS
動態的 DNS Server 在我以前常用的 Windows 2000 Server 內附的 DNS Service 不支援,所以一直無緣嘗試。現在使用的 Windows Server 2003 與付費註冊的 http://name.com/ 提供的 DNS management 工具,都支援動態 DNS 設定。只要將主機名稱設置為 * ,然後指向到 IP 位置,便可以提供動態 DNS 的服務。
(2) VirtualHost
這個部份比較麻煩,暫時還沒克服。我的 Apache 是利用 VirtualHost 加上 Reverse Proxy,來搾乾那台主機的每一分硬體資源,在一台電腦裡塞入十幾個網站。如果要讓 Apache VirtualHost 支援 Dynamic Domain Name,可能得要利用 CanonialName 方式,或 mod_vhost_alias 方式來解。不過別人的解法都是以 DocumentRoot 這種 mod_rewrite 為考量出發點,似乎和我的 Reverse Proxy 不太符合。股溝了一個小時,暫且擱下,等有空或問到高手後再來想辦法。
(3) Subdomain
在 Rails 裡面要解析 subdomain 相對之下就很簡單了,只要利用 request.subdomains[0] 就能夠得到子網域的內容,放在 application.rb 當中的 before_filter 來預解析,就能夠得到存取要求中子網站代號。
三個步驟當中,最重要的環節 Apache 沒打通,一切都白搭。現在最擔心的是,如果未來 Apache 這部份搞通了,會造成整個 Routing Rule 又是一場大亂,那麼這幾天打謎系統紊亂的情況,可能又得要重演一遍。
沒有留言:
張貼留言