lwhsu@ 後來又跟我重新講了一次 update.tw.freebsd.org 的狀況,
他是希望 proxy 在往後抓資料之前, 先查一次 dns srv record, 才決定到底該往哪台抓.
原本的想法是, 應該寫個 plugin 在 remap 之前作一下這事,
不過在查詢相關資料的時候, 意外的發現, 其實 ats 本身就可以做了,
code 就在那邊, 不過相關設定跟文件都沒有講的很清楚,
唯一的缺點是, 似乎不會按照 priority 去決定哪台,
--
CONFIG proxy.config.srv_enabled INT 1
在 record.config 中加上這行, remap.config 中把要 remap 的 target 改成要查的 hostname,
重跑 ats 就可以了.
2012年6月25日 星期一
2012年6月11日 星期一
使用 trafficserver 建立 mirror 的 FreeBSD portsnap site.
某長輩說目前的 portsnap.tw.freebsd.org 用 squid 跑, 某些原因, 要定期去清 cache,
我就想說, 那到底能不能直接用 trafficserver 來直接替換 squid, 單純跑 reverse proxy 呢?
答案是 ok 的, 雖然 traffic server 單純跑 reverse proxy 並不能顯示他的強項.
1: 在 www/trafficserver 下面打個 make install, 目前版本是 3.0.4 (stable)
2: 在 /etc/rc.conf or /etc/rc.conf.local 加上 "trafficserver_enable=YES"
3: 修改 /usr/local/etc/rc.d/trafficserver, 把 command & procname 裡面的 traffic_server 換成 traffic_manager
這邊的理由是, traffic_server 並不能用 root 跑, 因為程式裡面會檢查,
但是不用 root 跑, 他又不能 bind 在 port 1024 以下.
解法就是跑 traffic_manager, 讓他帶起 traffic_server, 這樣就可以必掉一些安全性問題,
又讓他 bind port 80.
4: 修改 /usr/local/etc/trafficserver/record.config
1: CONFIG proxy.config.http.server_port INT 80 (讓 server 跑在 port 80)
2: CONFIG proxy.config.http.cache.required_headers INT 0 (不管 response hearer 如何, 就是要 cache)
5: 修改 /usr/local/etc/trafficserver/remap.config
加上
map / http://portsnap.freebsd.org/
這是指定 trafficserver 的 origin server 是 portsnap.freebsd.org
其實應該不應該直接 remap '/', 而是要指定整個的 http schema 的,
但是因為 portsnap 會用到 fetch, 而 fetch 並不多送 host header.
6: 修改 /usr/local/etc/trafficserver/storage.config
把 256M 修改成想要的 cache size.
7: /usr/local/etc/rc.d/trafficserver start
這樣 local 就可以有一份 portsnap mirror 了.
用
portsnap -s 127.0.0.1 fetch 就可以作測試了.
--
UPDATE: 長輩說, 其實不是 portsnap 有問題, 而是 freebsd-update 會出問題, 但是其實是同一台, 所以要換就會整個一起換.
remap.config 這邊又研究了一下, 發現其實是 ok 的, 因為我偷懶, 沒跟著動 dns,
以 portsnap.tw.freebsd.org & update.tw.freebsd.org 這兩個 hostname 來講,
remap.config 設定如下.
map http://update.tw.freebsd.org/ http://update.freebsd.org/
map http://portsnap.tw.freebsd.org/ http://portsnap.freebsd.org/
設定好重跑 trafficserver 即可.
我就想說, 那到底能不能直接用 trafficserver 來直接替換 squid, 單純跑 reverse proxy 呢?
答案是 ok 的, 雖然 traffic server 單純跑 reverse proxy 並不能顯示他的強項.
1: 在 www/trafficserver 下面打個 make install, 目前版本是 3.0.4 (stable)
2: 在 /etc/rc.conf or /etc/rc.conf.local 加上 "trafficserver_enable=YES"
3: 修改 /usr/local/etc/rc.d/trafficserver, 把 command & procname 裡面的 traffic_server 換成 traffic_manager
這邊的理由是, traffic_server 並不能用 root 跑, 因為程式裡面會檢查,
但是不用 root 跑, 他又不能 bind 在 port 1024 以下.
解法就是跑 traffic_manager, 讓他帶起 traffic_server, 這樣就可以必掉一些安全性問題,
又讓他 bind port 80.
4: 修改 /usr/local/etc/trafficserver/record.config
1: CONFIG proxy.config.http.server_port INT 80 (讓 server 跑在 port 80)
2: CONFIG proxy.config.http.cache.required_headers INT 0 (不管 response hearer 如何, 就是要 cache)
5: 修改 /usr/local/etc/trafficserver/remap.config
加上
map / http://portsnap.freebsd.org/
這是指定 trafficserver 的 origin server 是 portsnap.freebsd.org
其實應該不應該直接 remap '/', 而是要指定整個的 http schema 的,
但是因為 portsnap 會用到 fetch, 而 fetch 並不多送 host header.
6: 修改 /usr/local/etc/trafficserver/storage.config
把 256M 修改成想要的 cache size.
7: /usr/local/etc/rc.d/trafficserver start
這樣 local 就可以有一份 portsnap mirror 了.
用
portsnap -s 127.0.0.1 fetch 就可以作測試了.
--
UPDATE: 長輩說, 其實不是 portsnap 有問題, 而是 freebsd-update 會出問題, 但是其實是同一台, 所以要換就會整個一起換.
remap.config 這邊又研究了一下, 發現其實是 ok 的, 因為我偷懶, 沒跟著動 dns,
以 portsnap.tw.freebsd.org & update.tw.freebsd.org 這兩個 hostname 來講,
remap.config 設定如下.
map http://update.tw.freebsd.org/ http://update.freebsd.org/
map http://portsnap.tw.freebsd.org/ http://portsnap.freebsd.org/
設定好重跑 trafficserver 即可.
訂閱:
文章 (Atom)