歡迎您光臨本站 註冊首頁

linux squid 代理伺服器 一

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

squid 安裝配置要求:
o 最好在架設 Proxy 時,將整體主機的規劃做好,並且讓 Proxy 主機的服務簡單一點,就是僅負責 Proxy 就好了!
o 每顆硬碟的容量不需要太大,大約在 9 GB 以內即可,此外,最好將硬碟分割一下,一塊 Partition 差不多在 2~4 GB 之間即可,因為切太大的話數據的搜尋耗費時間較長,但是 Partition 太小又可能造成空間的浪費~差不多的大小就限制在 2~4 GB 吧!
o 我們剛剛上面有提過,cache 是放置在某個目錄下的,而最好一個目錄底下就是獨立的一個 partition .此外,由於 cache 所在的硬碟常常會有數據的存取,因此可能此一硬碟的損耗率會比 較大,這個 cache 所在的硬碟最好不要跟重要數據文件,例如 /, /etc, /usr, /home 等等重要的系統檔案放在一起,以免危險啊!
o 也由於 cache 所在的硬碟數據存取太密集了,,硬碟的選擇上面需要 (1)轉速不能太低; (2)磁頭的機械臂需要可以忍受頻繁的動作; (3)發熱量不可太大,或者可以考慮加裝硬碟用風 扇.
squid 的優點:
1.快速的存取動作:一般來說, Proxy 主機的頻寬以及硬體配備會比較高檔! Proxy 最大的優點就是可以提供客戶端較為快速的瀏覽!
2.降低網路的負荷:
3.資料分流:由於各家 ISP 對於不同國家的頻寬是有差異的,因此,假設如果您要去美國時使用 Proxy1 速度較快,而 Proxy2 則是去日本比較快,至於台灣本地則 Proxy3 較快,如此一來, 我們可以透過設定將不同目標的代理伺服器分開來,以達到分流的目的!
4.提供防火牆內部的計算機連上 Internet:這個是一般企業比較常用的情況!由於企業內部害怕被黑客侵入,通常會設立一些比較嚴密的防火牆,然而如此一來公司內部的計算機可能面臨無法 連上 Internet 的窘境,那使用 proxy 讓你的內部計算機可以透過這一架主機的代理服務而取得 Internet 上的信息


5.多層次的管道 ( 上層代理伺服器 ):代理伺服器可以提供多重的管道設定,例如,當你需要國內的數據時,代理伺服器將直接去捉取,而需要國外的數據時,才連到上一層的代理伺服器
要架設 Proxy 的情況可以是:
o 我的 Client 端用戶不少,大部分僅需要 WWW 這個網路服務而已;
o 我的 Proxy 還兼做防火牆的任務;
o 我的 Client 端常常需要聯機到傳輸速度很慢的網站,例如國外的網站;
o 我的 Client 端常常瀏覽的網站是『靜態』網站,而不是動態網站(例如討論區的 PHP ).
squid 和NAT 區別:
NAT 是一個利用 TCP/IP 的 packet filter ( 封包過濾機制 )來進行封包處理的一個機制,他是『直接分析 TCP/IP 』,在設定防火牆的時候,他的彈性比較高,只要能過 NAT 這 一關,那麼大部分的網路服務都可以使用,因為 TCP/IP 是比較底層的協議啊!要知道的是,TCP/IP 上頭還有 port 、還有 IP 等等的信息,單是 port 就可以讓我們使用很多的不同的協議 了!例如 port 20, 21 是 FTP 啊, 80 是 WWW 啊等等的! NAT 能做的事情事很多的!
squid 透過 port 3128 來進行數據的監聽與傳輸,單是看到這個 port 3128 就應該要曉得他僅是一個 daemon 而已.Proxy 已經是應用層這個階段的網路項目了,他並沒有去分析 TCP 的封包,只要 Client 來源合乎他的需求 (例如 IP 是被支持的 ) ,那麼他將透過 daemon 的功能幫使用者達成使用者所想要的任務!說,能不能做某些事情,與 Proxy 伺服器上面負 責的那個 daemon 是有關的!
squid安裝配置過程
我使用的是RHEL4.0自帶的squid
[root@localhost squid]# rpm -qa |grep squid
squid-2.5.STABLE6-3.4E.11


設置文檔:
[root@localhost squid]# find / -name 'squid.conf'
/etc/squid/squid.conf
在vi /etc/squid/squid.conf具體配置地址:
1.http_port 3128 和實際配置一樣
icp_port 3130 和實際配置一樣
2.cache_dir aufs /usr/local/squid/var/cache1 1000 16 256 不一樣 cache_dir ufs /home/spool/squid/var/cache1 1000 16 256
cache_dir aufs /usr/local/squid/var/cache2 2000 16 256 不一樣 cache_dir ufs /home/spool/squid/var/cache2 1000 16 256
cache_access_log /usr/local/squid/var/logs/access.log 不一樣 cache_access_log /var/log/squid/access.log
cache_log /usr/local/squid/var/logs/cache.log 不一樣 cache_log /var/log/squid/cache.log
cache_store_log /usr/local/squid/var/logs/store.log 不一樣 cache_store_log /var/log/squid/store.log
pid_filename /usr/local/squid/var/logs/squid.pid 不一樣 pid_filename /var/run/squid.pid
3.關閉認證機制 # 不曉得為什麼,這一版的 squid 會自動的加入認證機制,請找到底下 # 幾行,將他 mark 起來!
#auth_param basic children 5 一樣 (默認就是#)
#auth_param basic realm Squid proxy-caching web server 一樣 (默認就是#)
#auth_param basic credentialsttl 2 hours 一樣 (默認就是#)
4.提供 squid 服務 # 預設的情況下,僅有本機可以使用 squid ,我們先將所有的許可權開放 # 然後在一個一個的關閉啰!
先找到底下這一行: http_access deny all # 將他改成 http_access allow all 一樣 (默認就是#)
5.設定 squid 的擁有者與系統管理員信箱: # 就是剛剛我們上一小節提到的 squid 的擁有者,請注意,這個 # user 與 group 必需要在 /etc/passwd 及 /etc/group 裡面存在方可成功 ! # 我這裡以許可權最小的 nobody, nogroup 來做為範例,您也可以自行設定! # 另外,cache_mgr 則是 squid 管理員的信箱,當 squid 發生問題時, # 屏幕上就會出現這個信箱給 使用者聯繫管理員之用! cache_effective_user nobody cache_effective_group nogroup # 您也可以改成 nobody ! cache_mgr youraccount@your.e.mail #


我這裡是直接使用nobody用戶:nobody組 其中查看系統/etc/passwd nobody 無法使用,修改成為 nobody:x:99:99:Nobody:/:/bin/bash 可以使用
6. 變更目錄許可權: # 在預設的情況下,我們主要的紀錄信息都寫入 /usr/local/squid/var 裡面, # 這個時候需要將這個目錄的許可權改變成為 nobody 與 nogroup 所有! # 當然啰 ,如果您的 cache_dir 不在這個目錄當中,那麼還需要額外自行建立, # 例如我的 cache_dir 萬一是在 /proxy1 與 /proxy2 時,那麼我就必需要:
# chown -R nobody:nogroup /proxy1 我這裡是chown -R nobody:nobody //home/spool/squid/var/cache1
# chown -R nobody:nogroup /proxy2 我這裡是chown -R nobody:nobody //home/spool/squid/var/cache2

# 關於許可權的問題是很重要的!請不要忘記了! [root@test root]# chown -R nobody:nogroup /usr/local/squid/var 我這裡是chown -R nobody:nobody /var/log/squid/
7. 開始啟動 squid: # 啟動 squid 來試看看吧!不過,我們必需要建立快取目錄的格式 # 才行,此外,由於我們想要以 nobody 來啟動 squid ,你需要這樣:
[root@test root]# /usr/local/squid/sbin/squid -z 我是直接squid -z
# 建立 cache_dir [root@test root]# su nobody -c "/usr/local/squid/bin/RunCache &" # 我是直接 su nobody service squid start
8. 查看是否真的啟動了 squid 了? [root@test root]# netstat -tln | grep 3128 一樣
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN # 有這條就OK了
9. 重新讀取設定檔 squid.conf 的方法: [root@test root]# /usr/local/squid/sbin/squid -k reconfigure 一樣

本文出自 「wxfxn2000」 博客,謝絕轉載!


[火星人 ] linux squid 代理伺服器 一已經有881次圍觀

http://coctec.com/docs/linux/show-post-48811.html