CentOS系統Squid反向代理
來源:程序員人生 發布時間:2015-04-20 07:53:35 閱讀次數:4031次
CentOS 聯網后,履行運行yum進行安裝
默許是squid3
yum install squid
安裝完成后,默許squid并沒有啟動,但是服務中已存在該服務,我們可以通過命令讓其啟動或停止
serivce squid status //判斷服務是不是運行
serivce squid start//啟動squid
service squid stop//停止squid
安裝后,squid并沒有運行。
---------------------------------------------
squid用處:
1.緩存代理服務器:當代理站點屢次要求同1個文件的時候,squid會從本身緩沖池中取數據,性能提高。可以實現局域網到互聯網的互通。
2.安全:暴露給外界的地址信息是squid代理服務器的信息,如果收到網絡攻擊,本身服務不受影響。
3.訪問策略:內置防火墻可以限制訪問時間,下載附件大小。。等設置。
代理:
正向代理:通過代理服務器,內網訪問外網
反向代理:通過代理服務器,外網訪問內網
透明朝理:不需要知道ip,port等信息,就自動通過代理完成,客戶端根本不知道自己是通過代理情勢上網。
使用squid需要修改配置文件
vi /etc/squid/squid.conf
默許配置文件很臃腫,在/etc/squid里有個squid.conf.bak 這個和squid.conf是1樣的備份文件。
-----------------------------------
環境如圖:

squid 3 配置文件已簡化,很多網上配置都是2版本的,不使用的,看1下squid3的配置文件,這個是1個最簡單的
把原來的squid.conf刪除
rm squid.conf
創建squid.conf
vi squid.conf
配置文件內容以下:
http_port 3128 #squid 運行端口,默許就是3128
visible_hostname localhost.localdomain#squid所在機器的hostname
acl innet src 10.0.2.0/24#訪問squid允許通過網關
http_
access allow innet#acl防火墻允許innet配置的網關內ip通過
http_
access deny all#謝絕其他網段訪問
經常使用命令以下:
service squid start#啟動服務
service squid stop#停止服務
service squid restart#重啟服務
squid -k reconfigure#熱部署配置文件
/usr/local/squid/sbin/squid -z 初始化緩存空間
/usr/local/squid/sbin/squid 啟動
/usr/local/squid/sbin/squid -k shutdown 停止
/usr/local/squid/sbin/squid -k reconfigure 重新載入配置文件
/usr/local/squid/sbin/squid -k rotate 輪循日志
修改后啟動便可。

設置閱讀器為代理模式,通過我們設置好的代理去訪問,這樣squid代理服務器會自動轉發要求信息。

設置好以后,我們就能夠輸入url地址進行網頁訪問了
如果你輸入的ip地址不正確 那末squid將會報錯

我們修改1下防火墻acl的網關地址

其實包括 管理員聯系郵箱等信息都是可以配置的,更詳細的設置信息可以自行Google
#acl all src 0.0.0.0/0.0.0.0 and http_
access allow all選項定義了1個訪問控制列表。詳細情況參見和Squid軟件
#攜帶的文檔。這里的訪問控制列表允許所有對代理服務的訪問,由于這里該代理是加速web
服務器。
acl all src 0.0.0.0/0.0.0.0 #允許所有IP訪問
acl manager proto http #manager url協議為http
acl localhost src 127.0.0.1/255.255.255.255 #允午本機IP
acl to_localhost dst 127.0.0.1 #允午目的地址為本機IP
acl Safe_ports port 80 # 允許安全更新的端口為80
acl CONNECT method CONNECT #要求方法以CONNECT
http_
access allow all #允許所有人使用該代理.由于這里是代理加速web
服務器
http_reply_
access allow all #允許所有客戶端使用該代理
acl OverConnLimit maxconn 16 #限制每一個IP最大允許16個連接,避免攻擊
http_
access deny OverConnLimit
icp_
access deny all #制止從鄰居
服務器緩沖內發送和接收ICP要求.
miss_
access allow all #允許直接更新要求
ident_lookup_
access deny all #制止lookup檢查DNS
http_port 8080 transparent #指定Squid監聽閱讀器客戶要求的端口號。
hierarchy_stoplist cgi-bin ? #用來強迫某些特定的對象不被緩存,主要是處于安全的目的。
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY
cache_mem 1 GB #這是1個優化選項,增加該內存值有益于緩存。應當注意的是:
#1般來講如果系統有內存,設置該值為(n/)3M。現在是3G 所以這里1G
fqdncache_size 1024 #FQDN 高速緩存大小
maximum_object_size_in_memory 2 MB #允許最大的文件載入內存
memory_replacement_policy heap LFUDA #動態使用最小的,移出內存cache
cache_replacement_policy heap LFUDA #動態使用最小的,移出硬盤cache
cache_dir ufs /home/cache 5000 32 512 #高速緩存目錄 ufs 類型 使用的緩沖值最大允午1000MB空間,
#32個1級目錄,512個2級目錄
max_open_disk_fds 0 #允許最大打開文件數量,0 無窮制
minimum_object_size 1 KB #允午最小文件要求體大小
maximum_object_size 20 MB #允午最大文件要求體大小
cache_swap_low 90 #最小允許使用swap 90%
cache_swap_high 95 #最多允許使用swap 95%
ipcache_size 2048 # IP 地址高速緩存大小 2M
ipcache_low 90 #最小允許ipcache使用swap 90%
ipcache_high 95 #最大允許ipcache使用swap 90%
access_log /var/log/squid/
access.log squid #定義日志寄存記錄
cache_log /var/log/squid/cache.log squid
cache_store_log none #制止store日志
emulate_httpd_log on #將使Squid仿照Web
服務器的格式創建訪問記錄。如果希望使用
#Web訪問記錄分析程序,就需要設置這個參數。
refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload #更新cache規則
acl buggy_server url_regex ^http://.... http:// #只允許http的要求
broken_posts allow buggy_server
acl apache rep_header Server ^Apache #允許apache的編碼
broken_vary_encoding allow apache
request_entities off #制止非http的標分準要求,避免攻擊
header_
access header allow all #允許所有的http報頭
relaxed_header_parser on #不嚴格分析http報頭.
client_lifetime 120 minute #最大客戶連接時間 120分鐘
cache_mgr sky@test.com #指定當緩沖出現問題時向緩沖管理者發送告警信息的地址信息。
cache_effective_user squid #這里以用戶squid的身份Squid
服務器
cache_effective_group squid
icp_port 0 #指定Squid從鄰居
服務器緩沖內發送和接收ICP要求的端口號。
#這里設置為0是由于這里配置Squid為內部Web
服務器的加速器,
#所以不需要使用鄰居
服務器的緩沖。0是禁用
# cache_peer 設置允許更新緩存的主機,因是本機所以127.0.0.1
cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchange
cache_peer_domain 127.0.0.1
hostname_aliases 127.0.0.1
error_directory /usr/share/squid/errors/Simplify_Chinese #定義毛病路徑
always_direct allow all # cache丟失或不存在是允許所有要求直接轉發到原始
服務器
ignore_unknown_nameservers on #開反DNS查詢,當域名地址不相同時候,制止訪問
coredump_dir /var/log/squid #定義dump的目錄
max_filedesc 2048 #最大打開的文件描寫
half_closed_clients off #使Squid在當read不再返回數據時立即關閉客戶真個連接。
#有時read不再返回數據是由于某些客戶關閉TCP的發送數據
#而依然保持接收數據。而Squid分辨不出TCP半關閉和完全關閉。
buffered_logs on #若打開選項“buffered_logs”可以稍稍提高加速某些對日志文件的寫入,該選項主要是實現優化特性。
#避免天涯盜鏈,轉嫁給百度
acl tianya referer_regex -i tianya
http_
access deny tianya
deny_info tianya
#禁止baidu蜘蛛
acl baidu req_header User-Agent Baiduspider
http_
access deny baidu
#限制同1IP客戶真個最大連接數
acl OverConnLimit maxconn 128
http_
access deny OverConnLimit
#避免被人利用為HTTP代理,設置允許訪問的IP地址
acl myip dst 222.18.63.37
http_
access deny !myip
#允許本地管理
acl Manager proto cache_object
acl Localhost src 127.0.0.1 222.18.63.37
http_
access allow Manager Localhost
cachemgr_passwd 53034338 all
http_
access deny Manager
#僅僅允許80端口的代理
acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 80 # http
http_
access deny !Safe_ports
http_
access allow all
#Squid信息設置
visible_hostname happy.swjtu.edu.cn
cache_mgr ooopic2008@qq.com
#基本設置
cache_effective_user squid
cache_effective_group squid
tcp_recv_bufsize 65535 bytes
#2.6的反向代理加速配置
cache_peer 127.0.0.1 parent 80 0 no-query originserver
#毛病文檔
error_directory /usr/local/squid/share/errors/Simplify_Chinese
#單臺使用,不使用該功能
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ? .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
cache_store_log none
pid_filename /usr/local/squid/var/logs/squid.pid
emulate_httpd_log on
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
cache_log /usr/local/squid/var/logs/cache.log
access_log /usr/local/squid/var/logs/
access.log combined
coredump_dir /usr/local/squid/var/cache
cache_dir ufs /usr/local/squid/var/cache 10000 16 256
dns_children 32
hosts_file /etc/hosts
cache_mem 400 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 32768 KB
maximum_object_size_in_memory 4096 KB
emulate_httpd_log on
#避免盜鏈
acl picurl url_regex -i .bmp$ .png$ .jpg$ .gif$ .jpeg$
acl mystie1 referer_regex -i happy.swjtu.edu.cn
http_
access allow mystie1 picurl
acl nullref referer_regex -i ^$
http_
access allow nullref
acl hasref referer_regex -i .+
http_
access deny hasref picurl
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈