利用squid搭建代理服務器linux
squid代理服務實現內網經過代理服務器訪問外網以及外網主機經過代理服務訪問內網服務器的功能,提供代理服務的軟件有不少,典型的有squid、nginx、varnish等,本文使用squid實現代理服務。nginx
squid代理服務的有點:vim
(1)提供緩存,增長了訪問速度瀏覽器
(2)提供用私網IP訪問公網地址的解決方案緩存
(3)提升了網絡的安全性安全
(4)方便對用戶管理服務器
squid代理服務類別:網絡
(1)普通代理,用於內網訪問公網,需手動設置代理服務器地址以及端口dom
(2)透明代理,用於內網訪問公網,不需手動設置代理tcp
(3)反向代理,用於發佈內網服務器供公網地址訪問
部署squid代理:
拓撲結構:
代理服務器需準備兩塊網卡,eth0鏈接內網,IP地址爲192.168.1.253,eth1鏈接外網,IP地址爲1.1.1.1,外網服務器IP地址爲1.1.1.253,內網服務器地址爲192.168.1.1
一、普通代理
(1)代理服務器安裝squid服務
(2)修改squid配置文件、啓動代理服務並設置,開機自啓動
[root@proxy ~]#vim /etc/squid/squid.conf //squid主配置文件
http_port 3128 //squid服務默認監聽端口
cache_mem 8 MB //默認緩存大小,緩存只能緩存靜態頁面,不能緩存動態頁面
cache_dir ufs /var/spool/squid 100 16 256 //squid緩存存儲目錄
數值解釋:
100 緩存目錄大小
16 一級子目錄數
256 一級子目錄下的目錄數
maximum_object_size 4096 KB 超過該值的數據不保存到緩存中
reply_body_max_size 10240000 訪問目標最大量,超過則不容許訪問
#visible_hostname 指定代理服務器的主機名,不設置的狀況下使用環回接口對應的主機名 ,作代理服務器的主機名(該選項爲可選項)
http_access deny all 默認拒絕全部代理,將deny改成allow表示容許全部,此處需改成allow
上述設置完成後啓動squid代理並設置開機自啓
(3)設置客戶端
本文客戶端使用另外一臺linux服務器模擬,使用firefox瀏覽器爲例,其餘瀏覽器設置代理的方法請百度。
(4)測試
外網服務器上搭建網站服務,寫一個測試主頁放在網站根目錄下,用於測試。
內網服務器在瀏覽器裏訪問外網服務器IP地址,能看到網頁說明代理工做正常
二、透明代理
(1)修改squid配置文件啓用透明代理,重啓squid服務
vim/etc/squid/squid.conf
http_port 3128 transparent //只修改這一條便可
(2)啓用防火牆,編寫防火牆規則,將80端口的訪問請求轉到3128代理端口
[root@proxy ~]#iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -jREDIRECT --to-ports 3128//添加防火牆規則
(3)修改客戶端配置
(4)測試
同普通代理
三、反向代理
(1) 反向代理多臺主機:
當有多臺主機須要向外網發佈時,能夠將squid主機設置修改以下:
http_port 80 vhost //設置squid主機監聽80端口
cache_peer 192.168.1.1 parent 80 0originserver //添加一臺內網主機
重啓squid服務便可,訪問時訪問squid代理服務的外網地址
(2) 反向代理虛擬主機:
修改squid主機配置文件以下:
vim /etc/squid/squid.conf
http_port 80 vhost
cache_peer 192.168.8.3 parent 80 0originserver name=www
cache_peer 192.168.8.3 parent 80 0originserver name=bbs
cache_peer_domain www www.zhy.com
cache_peer_domain bbs bbs.zhy.com
(3)測試