2009年1月16日 星期五

使用InstantRails架設可以對外的網站

嗯...久違的文章,距離上次發文好像已經過了五個月。這次會PO文也是剛好需要用到這個東西,網路上又找不到相關資料(我記得我有看過,但是就是找不到),所以經過大概4~5個小時try error(好像也沒這麼久拉),終於把站給架好了...沒想到意外的簡單,想到就想捶心肝(汗)。

ma...就直接來進入重點好了,這次使用的原理是利用Apache proxy對應的方法,一般網路上都是使用proxy balance,先製造cluster然後再用Mongrel對應的設定的cluster,最後再把cluster掛到proxy上面。但是,偏偏InstantRails的模組裡面硬是沒有proxy balance。所以在大腦快要壞掉之前終於try出了一種方法,就是既然可以先對應到cluster再對應到proxy,那我就乾脆把mongrel直接對應到proxy上就好了阿~在這邊我是利用InstantRails裡面附的typo來做例子,首先打開老東西,httpd.conf。如果不知道的話....就這樣也可以。

然後直接拉到最下面,更改下面的值


 

 
<virtualhost :8080>
ServerName typo
ProxyPass / http://localhost:3002/
ProxyPassReverse / http://localhost:3002
</virtualhost>

這樣就已經把虛擬的主機架好,而對應的PORT是8080(是Tomcat預設的listening port,如果有裝Tomcat就再選一個其他的Port吧)。不過這樣測試還是會連不到...原因很簡單,你沒有去listen port 8080...所以雖然伺服器會自動把從port 8080過來的資料轉給mongrel,但是沒有listen的情況下,OS根本不會丟port 8080的資料給他(伺服器)...所以,不要急著關掉httpd.conf,開始在拉到最上面,然後慢慢往下拉,接下來就會看到這幾行
#Listen 3000
#Listen 12.34.56.78:80
#Listen 127.0.0.1:80
Listen 80

只要在Listen 80後面再加上一行,Listen 8080,好,大工結束。存檔就可以等者看結果了,可以在瀏覽器打上 http://你的IP:8080/ 應該可以看到辛苦作的網站了,可以用力的推出去分享給別人,不用再望著localhost孤芳自賞。