linux下配置squid 伺服器,最簡單使用方式
linux下配置squid
1、什麼是squid
Squid cache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網路資源而快取全球資訊網,域名系統和其他網路搜尋,到通過過濾流量幫助網路安全,到區域網通過代理上網。Squid主要設計用於在Unix一類系統執行。
Squid的發展歷史相當悠久,功能也相當完善。除了HTTP外,對於FTP與HTTPS的支援也相當好,在3.0 測試版中也支援了IPv6。
squid可以做代理也可以做快取;
squid快取不僅可以節省寶貴的頻寬資源,也可以大大降低伺服器的I/O
squid不僅可以做正向代理,又可以做反向代理。
正向代理,squid後面是客戶端,客戶端上網要通過Squid去上;反向代理,squid後面是伺服器,伺服器返回給使用者資料需要走squid。
正向代理用在企業的辦公環境中,員工上網需要通過squid代理來上網,這樣可以節省網路頻寬資源。而反向代理用來搭建網站靜態項(圖片、html、流媒體、js、css等)的快取伺服器,它用於網站架構中。
2、搭建squid正向代理
官方網站為 http://www.squid-cache.org/
安裝命令:yum install -y squid
squid -v 檢視版本以及編譯引數(Squid Cache: Version 3.1.10)
> /etc/squid/squid.conf 清空配置檔案;
vim /etc/squid/squid.conf
加入如下配置:
http_port 3128
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 8080
acl Safe_ports port 21
acl Safe_ports port 443
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access allow all
cache_dir aufs /data/cache 1024 16 256
cache_mem 128 MB
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern \.(jpg|png|gif|mp3|xml) 1440 50% 2880 ignore-reload
refresh_pattern . 0 20% 4320
############################## 到此結束
配置解釋:
acl Safe_ports port 80 8080 # http的埠
acl Safe_ports port 21 # ftp的埠
acl Safe_ports port 443 # https的埠
cache_dir aufs /data/cache 1024 16 256 #快取空間1024M大小 16個一級目錄,256個子目錄
cache_mem 128 MB #快取可以使用的記憶體大小;放在記憶體中訪問資料速度快;
mkdir /data/cache #建立快取目錄
chown -R squid:squid /data/cache #更改快取目錄許可權
squid -z #初始化快取目錄,squid新版本3.1可以省略
/etc/init.d/squid start #啟動squid服務
squid -k check #可以檢測配置檔案是否有錯;可以簡寫為-kche
squid -k rec #可以重新載入配置,reconfig的簡寫;
service squid restart #重啟squid服務;重啟經常性的很慢,可以先killall squid,在啟動服務;
檢測配置檔案,報錯:Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.沒有定義公共主機名,需要配置visible_hostname 視覺化主機名;(squid出問題,會在瀏覽器顯示squid的主機名)
在配置檔案中加入:visible_hostname yonglinux 就不會報錯;
[[email protected] ~]# squid -k check
2015/05/25 03:09:18| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
2015/05/25 03:09:18| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
squid: ERROR: No running copy
在另一臺linux進行測試:curl -x192.168.22.30:3128 www.qq.com
指定代理伺服器192.168.22.30的3128埠訪問網站,前提保證代理伺服器能訪問網站;
設定代理伺服器的作用是讓區域網的使用者訪問網站速度快,另一方面可以控制使用者訪問哪些網站;上班期間禁止員工看視訊,購物;
訪問圖片,測試快取,快取的時間,X-Cache為HIT擊中,說明squid快取起作用;第一次為MISS;
[[email protected] ~]# curl -x192.168.22.30:3128 'http://www.51cto.com/images/home/images/logo.jpg' -I
HTTP/1.0 200 OK
Server: Tengine
Date: Sun, 24 May 2015 13:42:43 GMT
Content-Type: image/jpeg
Content-Length: 5309
Last-Modified: Wed, 22 Jan 2014 07:55:12 GMT
Expires: Sun, 31 May 2015 13:42:43 GMT
Cache-Control: max-age=604800
Load-Balancing: web39
Accept-Ranges: bytes
Age: 29661
X-Cache: HIT from yonglinux
X-Cache-Lookup: HIT from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
設定squid代理伺服器只代理某幾個域名
設定域名白名單,允許baidu sohu可以訪問,其他都拒絕;
vim /etc/squid/squid.conf 下面的內容加入到squid配置檔案acl下面;
acl http proto HTTP
acl good_domain dstdomain .baidu.com .sohu.com
http_access allow http good_domain
http_access deny http !good_domain
使用curl測試白名單,baidu、sohu返回狀態碼為200 OK,qq不在白名單則返回403;
[[email protected] ~]# curl -x192.168.22.30:3128 www.sohu.com -I
HTTP/1.0 200 OK
Content-Type: text/html
Date: Sun, 24 May 2015 13:57:32 GMT
Server: SWS
Vary: Accept-Encoding
Cache-Control: no-transform, max-age=120
Expires: Sun, 24 May 2015 13:59:32 GMT
Last-Modified: Sun, 24 May 2015 13:57:21 GMT
X-RS: 11172604.20347654.12509576
FSS-Cache: HIT from 9861864.17726194.11198816
X-Cache: MISS from yonglinux
X-Cache-Lookup: MISS from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
[[email protected] ~]# curl -x192.168.22.30:3128 www.qq.com -I
HTTP/1.0 403 Forbidden
Server: squid/3.1.10
Mime-Version: 1.0
Date: Sun, 24 May 2015 22:04:30 GMT
Content-Type: text/html
Content-Length: 3254
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from yonglinux
X-Cache-Lookup: NONE from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
限制某些域名不能通過代理訪問
設定域名黑名單,不允許訪問taobao.com jd.com;其他的都允許;
vim /etc/squid/squid.conf 下面的內容加入到squid配置檔案acl下面
acl http proto HTTP
acl bad_domain dstdomain .taobao.com .jd.com
http_access deny http bad_domain
使用curl測試黑名單,taobao、jd返回狀態碼為403,51cto不在黑名單返回200 OK;
[[email protected] ~]# curl -x192.168.22.30:3128 www.taobao.com -I
HTTP/1.0 403 Forbidden
Server: squid/3.1.10
Mime-Version: 1.0
Date: Sun, 24 May 2015 21:35:22 GMT
Content-Type: text/html
Content-Length: 3266
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from yonglinux
X-Cache-Lookup: NONE from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
[[email protected] ~]# curl -x192.168.22.30:3128 www.jd.com -I
HTTP/1.0 403 Forbidden
Server: squid/3.1.10
Mime-Version: 1.0
Date: Sun, 24 May 2015 21:35:32 GMT
Content-Type: text/html
Content-Length: 3254
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from yonglinux
X-Cache-Lookup: NONE from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
[[email protected] ~]# curl -x192.168.22.30:3128 www.51cto.com -I
HTTP/1.0 200 OK
Server: Tengine
Date: Sun, 24 May 2015 13:31:21 GMT
Content-Type: text/html
Vary: Accept-Encoding
Load-Balancing: web39
X-Cache: MISS from yonglinux
X-Cache-Lookup: MISS from yonglinux:3128
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
使用IE瀏覽器測試,需要設定代理伺服器,選單欄——工具——Internet選項——連線——區域網設定,勾選代理伺服器——高階,填寫squid代理伺服器地址和埠號;
訪問jd.com taobao.com,提示錯誤,訪問被拒絕,由之前定義的視覺化主機名發出的;訪問其他網站正常;
3、搭建squid反向代理
vim /etc/squid/squid.conf #如下變更
之前增加的域名白/黑名單相關配置去掉;
http_port 3128 改為 http_port 80 accel vhost vport
增加如下內容:
cache_peer 14.17.42.40 parent 80 0 originserver name=a
cache_peer 180.97.33.107 parent 80 0 originserver name=b
cache_peer_domain a www.qq.com
cache_peer_domain b www.baidu.com
監聽的3128埠改為80埠;IE瀏覽器代理伺服器的埠也要更改為80;
14.17.42.40為ping www.qq.com的ip地址;
如果是squid要代理一臺web上的所有域名,那麼就寫成這樣: cache_peer 192.168.10.111 80 0 originserver #只需要這一行,cache_peer_domain 可以省略;
/etc/init.d/squid restart
IE瀏覽器測試反向代理,訪問baidu.com、qq.com可以訪問,其他網站提示:目前無法將您的請求進行轉送操作
使用curl測試
[[email protected] ~]# curl -x192.168.22.30:80 www.qq.com -I
HTTP/1.0 200 OK
Server: squid/3.4.1
Date: Sun, 24 May 2015 14:22:47 GMT
Content-Type: text/html; charset=GB2312
Vary: Accept-Encoding
Vary: Accept-Encoding
Expires: Sun, 24 May 2015 14:23:47 GMT
Cache-Control: max-age=60
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Cache:
HIT from shenzhen.qq.com
X-Cache:
MISS from yonglinux
X-Cache-Lookup: MISS from yonglinux:80
Via: 1.0 yonglinux (squid/3.1.10)
Connection: keep-alive
訪問qq.com返回HIT from shenzhen.qq.com,說明qq.com本身也做了反向代理;
squid還有很多配置,後續會陸續更新;
相關推薦
linux下配置squid 伺服器,最簡單使用方式
linux下配置squid 1、什麼是squid Squid cache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web快取伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器快取相關請求來提高Web伺服器的速度,到為一組人共享網路資源而快取全球
在Linux系統配置Nodejs環境的最簡單步驟,部署多個thinkjs(nodejs)專案
發現一臺伺服器部署管理多個nodejs服務,可以採用二級域名weekly.mwcxs.top,也可以採用固定字尾www.mwcxs.top/weekly的方式,本文先從固定字尾的方式部署管理多個nodejs服務。 1、去官網下載和自己系統匹配的檔案: 建議去英文網站下載 ,因為中文這邊沒有
linux下配置squid代理
linux squid 代理工具、×××工具yum install -y squid (安裝squid服務)配置正向代理(企業中用於訪問控制等)vim /etc/squid/squid.conf (編輯squid配置文件) ...... acl http proto HTTP
Linux下配置日誌伺服器
Linux配置日誌伺服器 日誌伺服器配置檔案:/etc/rsyslog.conf 伺服器端: 伺服器IP如下: 編輯日誌伺服器的配置檔案: 這裡UDP或者TCP任選一個 將註釋的兩句複製一遍,然
Linux下停Tomcat伺服器,出現Connection refused錯誤解決辦法
錯誤內容如下 : 2010-9-19 16:09:58 org.apache.catalina.startup.Catalina stopServer 嚴重: Catalina.stop: java.net.ConnectException: Connectio
LINUX 下配置郵件伺服器過程(實踐)
配置 sendmail.mc : 開啟/etc/mail/sendmail.mc檔案, 找到: dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTE
在Linux下配置FTP伺服器(心得)
溫故知新。也不是第一次配置FTP了,之前第一次配置FTP的時候沒什麼阻礙,後來換了個電腦又配置了一次,搞了一個晚上都才配置完成。故特意寫這篇文章來提示下後人,也為了以後我忘了能回看怎麼配置。 進入正題!!! 在Linux下首先你得有網路。 測試網路
Linux下設定終端解析度,最全的VGA程式碼和解析度對照表
一般安裝完linux後預設的kernel給的tty解析度是非常有限的,解決的方法就是給kernel傳遞VGA引數。對應的要修改的配置檔案為 /etc/grub.conf,(或者 /boot/grub/grub.conf)就是在grub.conf啟動列表的kernel最後新增vga引數 vga=xxxx,
Linux下配置samba伺服器
知識點,samba有五種安全級別,它們分別是: share:不需要samba賬戶就可登陸samba伺服器 user:需要新增samba賬戶才可以登陸samba伺服器 server:由另外一臺samba伺服器來對使用者進行身份驗證。
Linux 下配置Git 伺服器-使用SSH連線
最新需要和朋友作一個自己的私有專案。不想用github公開程式碼,所以就想到了自己加上git 伺服器。 網上查了一些資料,各個博主的資料還是很全的,但是自己架設的時候還是遇到了一些困難,我吧我是如何配置的方法寫下來 本人使用的是Ubuntu 14 的系統 有密碼 1 安
thinkphp 5 自動生成模組,最簡單方式,一句程式碼
直接在專案入口檔案中加上最後一句就夠了 可以不依賴自動生成檔案,直接使用預設目錄生成模組,例如: // 定義應用目錄 define('APP_PATH', __DIR__ . '/../application/'); // 載入框架引
linux ubuntu 配置雙網絡卡 簡單方式
第一種方法 第一種方法是在路由表中新增路由規則 修改網絡卡配置檔案 開啟檔案: sudo vi /etc/network/interfaces 新增如下: auto eno1 iface eno1 inet static address 19
最簡單有效的關於linux下配置Git操作免登錄ssh公鑰
_for pla 復制 進入目錄 new for interval put 倉庫 ssh-keygen -t rsa -b 4096 -C “[email protected]” 然後回車三連擊… 進入目錄(執行cd ~/.ssh),可以看到當前目錄下多出兩個文件 id
最簡單有效的關於linux下配置Git操作免登入ssh公鑰
ssh-keygen -t rsa -b 4096 -C “[email protected]” 然後回車三連擊… 進入目錄(執行cd ~/.ssh),可以看到當前目錄下多出兩個檔案 id_rsa.pub 和 id_rsa 帶字尾是公鑰,不帶是私鑰 用vi 編輯器將 id_r
Linux下配置MySQL主從同步(不復雜,簡單明瞭)
明人不說暗話,直接進入正題 一、準備工作 假設兩個伺服器IP如下: 主伺服器:44.92.163.112 -Linux 從伺服器:114.74.22.11 -Linux 注意: 1、主從資料庫版本最好一致; 2、主從資料庫內資料保持一致;
linux下安裝mysql5.7.17及簡單配置
http mkdir exp 重要 ble ges 選擇 bsp 統一 1.mysql5.7.17安裝在/usr/local/mysql目錄裏面,也可以安裝在其他地方 (安裝包最好與Linux系統一樣,eg;64位的就是“mysql-5.7.17-linux-glibc2.
可以開啟組策略的情況下,最簡單的 本地組策略編輯器 重置
管理伺服器上面的組策略管理器,可能大家都會改,所以最好先匯出組策略配置:匯出列表,修改之前記住你改了什麼這是個好習慣。 進入正題:網上很多重置動作都很重,但是如果我能開啟組策略,這種情況下的重置就非常簡單了: 點選下圖所有設定: 點選狀態,兩次,直到已開啟的選
linux配置resin伺服器,啟動專案
第一步:安裝resin伺服器 第二步:配置resin安裝路徑和JDK的路徑 第三步:web專案指向resin伺服器 好啦,開始上程式碼! 1.安裝resin,我這裡用到的是4.0.36版本,我安裝在home目錄,cd home,然後輸入 [[email protecte
Linux 下配置 Hadoop2.x 高可用 zookeeper Yarn,詳細步驟。
此係列文章是探索大資料道路的記錄,有些記錄是為了備忘,有些記錄是為了學習心得內容,有些是為了給大家提供一個好的學習資料。持續更新中…大家也可以到我的私人blog檢視該系列文章。blog.cuteximi.com ,也可以關注【碼省理工】公眾號與我交流技術。
同一伺服器下配置多域名,去掉Tomcat埠號,Nginx反向代理做轉發
1. 開啟nginx,資源管理器檢視開啟是否成功,會有兩個nginx.exe程序,瀏覽器輸入127.0.0.1可以訪問到nginx歡迎介面。 2. 在nginx配置檔案nginx.conf中配置多個虛擬主機,即server,用於存放不同的域名(server_name),虛擬