squid2.7 作普通代理並添加用戶驗證

採用2.7最新穩定版本‍squid-2.7.STABLE9.tar.gz,沒什麼好說的了html

 

./configure -prefix=/usr/local/squid -enable-dlmalloc -enable-xmalloc-statistics -enable-useragent-log -enable-referer-log -enable-epoll -enable-large-cache-files -disable-internal-dns -enable-linux-netfilter -enable-truncate -enable-x-accelerator-vary -enable-follow-x-forwarded-for -with-large-files -with-pthreads -enable-storeio="aufs,coss,diskd,ufs" -enable-kill-parent-hack -enable-gnuregex -enable-cache-digests -enable-delay-pools -enable-stacktraces -enable-default-err-language=Simplify_Chinese -enable-err-languages="Simplify_Chinese English" --enable-auth="basic" --enable-basic-auth-helpers="NCSA"linux

make && make install vim

cp squid.conf squid.conf && rm -rf squid.conf緩存

vim squid.conf 服務器

 

  
  
           
  
  
  1. http_port 3128  
  2. acl local dst 61.164.41.148 127.0.0.0/8  
  3. acl request method HEAD CONNECT PUT DELETE  
  4. acl all src 0.0.0.0/0.0.0.0  
  5. acl OverConnLimit maxconn 50  
  6. visible_hostname localhost  
  7. cache_dir ufs /var/spool/squid 256 8 16  
  8. coredump_dir /var/spool/squid  
  9. #########  
  10. auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd  
  11. auth_param basic children 5  
  12. acl auth_user proxy_auth REQUIRED  
  13. http_access allow auth_user  
  14. http_access deny all  
  15. #########  
  16. access_log none  
  17. cache_log /var/log/squid/cache_log  
  18. cache_store_log none  
  19. pid_filename /var/run/squid.pid  
  20.  
  21.  
  22. error_directory /usr/local/squid/share/errors/Simplify_Chinese  
  23. cache_mgr yhl5555@126.com  
  24.  
  25. half_closed_clients off  
  26.  
  27. cache_effective_user nobody  
  28. cache_effective_group nobody  
  29.  
  30. positive_dns_ttl 5 minute  
  31. negative_dns_ttl 1 minute  
  32. shutdown_lifetime 5 second  
  33. connect_timeout 30 second  
  34. read_timeout 60 second  
  35. request_timeout 60 second  
  36.  
  37. cache_mem 256 MB  
  38.  

而後增長用戶驗證ide

 

 參考:http://www.squid-cache.org/Versions/v2/2.7/cfgman/auth_param.html
利用Apache攜帶的工具軟件htpasswd在/usr/locad/squid/etc下生成密碼文件,並添加相
應的用戶信息。該密碼文件每行包含一個用戶的信息,即用戶名和密碼。例如,用
htpasswd生成密碼文件passwd並添加用戶haowenwen:
 工具

yum -y install httpdui

htpasswd -c /usr/local/squid/etc/passwd haowenwen
password: ******
spa

cd /usr/local/src/squid-2.7.STABLE9/helpers/basic_auth/NCSA
make
make install
cp ncsa_auth /usr/local/squid/bin/ncsa_auth
調試

最後建立cache目錄

‍# mkdir /var/log/squid
# chown nobody:nobody /var/log/squid
# mkdir /var/spool/squid
# chown nobody:nobody /var/spool/squid
# ls -lh /var/spool/
# cd /usr/local/squid/sbin
# ./squid -z
# ./squid -Nd 10

 輸入‍http://192.168.64.131:3128出現

Access Denied的錯誤提示

 說明squid啓動成功

 ‍由於指定了-d參數,因此如今squid會把全部的調試信息都輸出終端。 按下鍵盤的ctrl+c,而後輸入killall squid殺死squid,能夠終止squid的進程。

  

‍從新引導Squid運行
# /usr/local/squid/sbin/squid -k shutdown
# /usr/local/squid/sbin/squid -s

 

‍把squid添加到系統啓動項
編輯 vi /etc/rc.d/rc.local
添加以下行: /usr/local/squid/sbin/squid -s


 ‍經常使用squid調試命令:
--------------------------
重引導修改過的 squid.conf
/usr/local/squid/sbin/squid -k reconfigure
-------------------------
1,初始化你在 squid.conf 裏配置的 cache 目錄
#/usr/local/squid/sbin/squid -z
若是有錯誤提示,請檢查你的 cache目錄的權限。
2,對你的squid.conf 排錯,即驗證 squid.conf 的 語法和配置。
#/usr/local/squid/sbin/squid -k parse
若是squid.conf 有語法或配置錯誤,這裏會返回提示你,若是沒有返回,恭喜,能夠嘗試啓動squid。
3,在前臺啓動squid,並輸出啓動過程。
#/usr/local/squid/sbin/squid -N -d1
若是有到 ready to server reques,恭喜,啓動成功。
而後 ctrl + c,中止squid,並之後臺運行的方式啓動它。
4,啓動squid在後臺運行。
#/usr/local/squid/sbin/squid -s
這時候能夠 ps -A 來查看系統進程,能夠看到倆個 squid 進程。
5,中止 squid
#/usr/local/squid/sbin/squid -k shutdown
這個不用解釋吧。
6,重引導修改過的 squid.conf
#/usr/local/squid/sbin/squid -k reconfigure
這個估計用的時候比較多,當你發現你的配置有不盡你意的時候,能夠隨時修改squid.conf,而後別忘記對你的 squid.conf排錯,而後再執行此指令,便可讓squid從新按照你的 squid.conf 來運行。
7,把squid添加到系統啓動項
編輯 /etc/rc.d/rc.local
添加以下行: /usr/local/squid/sbin/squid -s
固然,並非每一個人都喜歡這種啓動方式,你能夠用你最習慣的方式;或者把它安裝爲服務。

再來點其餘的。 1,修改cache 緩存目錄的權限。 #chown -R nobody:nobody /home/cache 個人cache緩存目錄是 /home/cache,squid執行用戶和用戶組是 squid,squid。 2,修改squid 日誌目錄的權限 #chown -R nobody:nobody /usr/local/squid/var/logs 這一步並非適合每個使用squid的用戶.意爲讓squid有權限在該目錄進行寫操做 。 例如生成 access.log    cache.log   store.log 3,查看你的日誌文檔。 #more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT 該指令能夠看到在squid運行過程當中,有那些文件被squid緩存到內存中,並返回給訪問用戶。 #more /usr/local/squid/var/logs/access.log | grep TCP_HIT 該指令能夠看到在squid運行過程當中,有那些文件被squid緩存到cache目錄中,並返回給訪問用戶。 #more /usr/local/squid/var/logs/access.log | grep TCP_MISS 該指令能夠看到在squid運行過程當中,有那些文件沒有被squid緩存,而是現重原始服務器獲取並返回給訪問用戶。

相關文章
相關標籤/搜索