[English title:How to install Squid in Ubuntu 16.04 LTS?]
[前言]
因為做論文研究關係,需要用到 Squid 這類的 proxy server 來做網址導向(redirection)的動作。
[環境需求]
本次的Linux Distro:Ubuntu 16.04 LTS
[開始安裝!]
# 更新套件 sudo apt-get update sudo apt-get install squid # 複製一份設定檔,若改錯還可以把設定回復。 sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup # 編輯 squid.conf sudo vim /etc/squid/squid.conf
[squid.conf 的設定]
這邊只設定成:把指定的網址做重新導向的動作。
那我們是靠著 PHP script 來處理重新導向的動作,squid 會監聽所有的 HTTP 請求。
把他們交給 PHP 之後,接著交由 PHP 執行,接著 PHP 會去跑我們指定的 PHP script ,處理完並得到結果後進行輸出,結束。
以下是 squid.conf 的內容:除了下面有一些客製化的設定之外,基本上可以直接複製拿來做使用的。
我把 configuration (squid.conf) 貼在Gist:
以及:url_redirect.php (squid.conf 的 134行,使用 PHP script 處理導向)
作用:指的是,若連線到:www.animen.com.tw 就導向到:www.google.com.sa
[解析]
比較重要的地方是從:#custom configuration 下面開始(在 129 行開始),裡面有定義一些
requst header, 還有 url_rewrite 等。
- 其中的 192.169.0.1 應該要改成你自己當前電腦所使用的 IP。
- 如果要用:url_rewrite 把所有的請求都交給 PHP 來做處理的話,129 行到 133 行可以刪除。
留下 134 以及 135 行即可。 - 若不靠 PHP scirpt 處理導向的話,請留下 129 行到 133 行。刪掉或註解 134 跟 135 行。
129 行請換成當前電腦的 IP address (請用 ifconfig 指令查詢)。 - 第 129 行到 133 行,作用:當連到 www.google.com.pa 時,會自動導向到:https://google.com.tw
- 若要改 proxy server 的 port number,請參考第 44 行
- 第 101 行的 cache_mgr 是管理者 email 當有存取的動作的時候,就可以發信做通知
當然也要設定與安裝 email server。 - 第 106 行的 visible_hostname 則是填寫你主機的 host name
- 任何設定完之後,記得要重啟 squid 服務,這樣新的設定才會生效。
- 因為會動到 HTTP 應用層上的東西,所以通常重啟服務會稍微久一點,是正常的。
- 有用防火牆的話,記得將 port 打開。(如果要允許讓外部連線的話,不用的話,這步就免了。)
[討論&後記]
雖然有一些方式,像是直接把要導向的 URL 直接的寫在 squid.conf 裡,不過就是我不太熟 bash,再加上要導向的網址很多,想說用 PHP 直接去做掉,會比較快一點。雖然效能會差一點。不過是導向靜態的內容檔案,感覺是還好的。說不定之後就會改成直接在 squid.conf 裡設定,不用 PHP script XD。