squid安裝簡單說明-創(chuàng)新互聯(lián)

suid 下載及安裝

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、貢山網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、貢山網(wǎng)絡(luò)營銷、貢山企業(yè)策劃、貢山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供貢山建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

1. squid 安裝硬件要求

Squid運(yùn)行在所有流行的Unix系統(tǒng)上,也可以在Microsoft Windows上運(yùn)行。盡管squid的Windows支持在不斷改進(jìn),但也許在Unix上容易一些。假如你有一個(gè)喜歡的操作系統(tǒng),我建議你使用那個(gè)。否則,假如你找人推薦,我很喜歡FreeBSD。

squid對(duì)硬件要求不算高。內(nèi)存是最重要的資源。內(nèi)存短缺會(huì)嚴(yán)重影響性能。磁盤空間也是另一個(gè)重要因素。更多的磁盤空間意味著更多的緩存目標(biāo)和更高的命中率??焖俚拇疟P和驅(qū)動(dòng)器也是有利的。如果你舍得花錢,SCSI磁盤比ATA的執(zhí)行性能好。當(dāng)然快速的CPU也是好的,但它并不是提高性能的關(guān)鍵因素。

因?yàn)閟quid對(duì)每個(gè)緩存響應(yīng)使用少數(shù)內(nèi)存,因此在磁盤空間和內(nèi)存要求之間有一定聯(lián)系?;疽?guī)則是,每G磁盤空間需要32M內(nèi)存。這樣,512M內(nèi)存的系統(tǒng),能支持16G的磁盤緩存。你的情況當(dāng)然會(huì)不同。內(nèi)存需求依賴于如下事實(shí):緩存目標(biāo)大小,CPU體系(32位或64位),同時(shí)在線的用戶數(shù)量,和你使用的特殊功能。

人們經(jīng)常問如此問題:“我的網(wǎng)絡(luò)有X個(gè)用戶,需要配備什么樣的硬件給squid?”因?yàn)樵S多理由,這樣的問題好難回答。特別的,很難說X個(gè)用戶將產(chǎn)生多少流量。我告訴人們?nèi)ソ⒁粋€(gè)有足夠磁盤空間,可存儲(chǔ)3-7天web流量數(shù)據(jù)的系統(tǒng)。例如,假如你的用戶每天8小時(shí)耗費(fèi)1M流量(僅僅HTTP和FTP傳輸),那就是每天大約3.5G。所以,我可以說,每兆web傳輸你需要10到25G的磁盤空間。

2.2.squid 下載及安裝

2.2.1.squid 下載地址

 http://www.squid-cache.org/

2.2.3.安裝前準(zhǔn)備

 1) 文件描述符修改

   文件描述符是一個(gè)簡單的整數(shù),用以標(biāo)明每一個(gè)被進(jìn)程所打開的文件和socket。第一個(gè)打開的文件是0,第二個(gè)是1,依此類推。Unix操作系統(tǒng)通常給每個(gè)進(jìn)程能打開的文件數(shù)量強(qiáng)加一個(gè)限制。更甚的是,unix通常有一個(gè)系統(tǒng)級(jí)的限制。

因?yàn)閟quid的工作方式,文件描述符的限制可能會(huì)極大的影響性能。當(dāng)squid用完所有的文件描述符后,它不能接收用戶新的連接。也就是說,用完文件描述符導(dǎo)致拒絕服務(wù)。直到一部分當(dāng)前請(qǐng)求完成,相應(yīng)的文件和socket被關(guān)閉,squid不能接收新請(qǐng)求。當(dāng)squid發(fā)現(xiàn)文件描述符短缺時(shí),它會(huì)發(fā)布警告。

在運(yùn)行./configure之前,檢查你的系統(tǒng)的文件描述符限制是否合適,能給你避免一些麻煩。大多數(shù)情況下,1024個(gè)文件描述符足夠了。非常忙的cache可能需要4096或更多。在配置文件描述符限制時(shí),我推薦設(shè)置系統(tǒng)級(jí)限制的數(shù)量為每個(gè)進(jìn)程限制的2倍。

通常在你的Unix shell中能找到系統(tǒng)的文件描述符限制。所有的C shell及其類似的shell有內(nèi)建的limit命令。更新的Bourne shell及其類似的shell有一條叫做ulimit的命令。為了發(fā)現(xiàn)你的系統(tǒng)的文件描述符限制。

 方法一:

 ulimit -SHn 20480

 方法二:

 vi /etc/security/limits.conf

 *   -   nofile  20480

 2)調(diào)整臨時(shí)端口范圍

  臨時(shí)端口是TCP/IP棧分配給出去連接的本地端口。換句話說,當(dāng)squid發(fā)起一條連接到另一臺(tái)服務(wù)器,內(nèi)核給本地socket分配一個(gè)端口號(hào)。這些本地端口號(hào)有特定的范圍限制。例如,在FreeBSD上,默認(rèn)的臨時(shí)端口范圍是1024-5000。

臨時(shí)端口號(hào)的短缺對(duì)非常忙的代理服務(wù)器(例如每秒數(shù)百個(gè)連接)來說,會(huì)較大的影響性能。這是因?yàn)橐恍㏕CP連接在它們被關(guān)閉時(shí)進(jìn)入TIME_WAIT狀態(tài)。當(dāng)連接進(jìn)入TIME_WATI狀態(tài)時(shí),臨時(shí)端口號(hào)不能被重用。

 查看本地端口范圍:

  #cat /proc/sys/net/ipv4/ip_local_port_range

  #32768  61000

 修改臨時(shí)端口范圍:

  #echo "net.ipv4.ip_local_port_range = 4000 65000" >> /etc/sysctl.conf

  #sysctl -p

 2.3.4 安裝

 # tar -zxf squid-3.0.STABLE26.tar.gz

 #./configure --prefix=/usr/local/squid --enable-storeio=ufs,aufs --enable-icmp

 # make

 # make install

2.3.5.目錄結(jié)果說明:

# tree -L 2 /usr/local/squid/

/usr/local/squid/

├── bin

│  ├── RunAccel

│  ├── RunCache

│  └── squidclient

├── etc

│  ├── cachemgr.conf

│  ├── cachemgr.conf.default

│  ├── mime.conf

│  ├── mime.conf.default

│  ├── squid.conf

│  └── squid.conf.default

├── libexec

│  ├── cachemgr.cgi

│  ├── pinger

│  └── unlinkd

├── sbin

│  └── squid

├── share

│  ├── errors

│  ├── icons

│  ├── man

│  └── mib.txt

└── var

  └── logs

sbin

sbin目錄的程序正常只能被root啟動(dòng)

sbin/squid

Squid的主程序

bin

bin目錄包含對(duì)所有用戶可用的程序

bin/RunCache

RunCache是一個(gè)shell腳本,你能用它來啟動(dòng)squid。假如squid死掉,該腳本自動(dòng)重啟它,除非它檢測到經(jīng)常的重啟。RunCache是一個(gè)時(shí)間遺留的產(chǎn)物,那時(shí)Squid還不是后臺(tái)服務(wù)進(jìn)程。在最近的版本里,RunCache很少用到,因?yàn)镾quid自動(dòng)重啟它自身,當(dāng)你不使用-N選項(xiàng)時(shí)。

bin/RunAccel

RunAccel與RunCache幾乎一致,唯一的不同是它增加了一個(gè)命令行參數(shù),告訴squid在哪里偵聽HTTP請(qǐng)求。

bin/squidclient

squidclient是個(gè)簡單的HTTP客戶端程序,你能用它來測試squid。它也有一些特殊功能,用以對(duì)運(yùn)行的squid進(jìn)程發(fā)起管理請(qǐng)求。

libexec

libexec目錄傳統(tǒng)的包含了輔助程序。有一些命令你不能正常的啟動(dòng)。然而,這些程序通常被其他程序啟動(dòng)。

libexec/unlinkd

unlinkd是一個(gè)輔助程序,它從cache目錄里刪除文件。如你后面看到的一樣,文件刪除是個(gè)性能瓶頸。通過在外部進(jìn)程里執(zhí)行刪除操作,Squid提升了一些執(zhí)行性能。

libexec/cachemgr.cgi

cachemgr.cgi是Squid管理功能的CGI接口。為了使用它,你需要拷貝該程序到你的WEB服務(wù)器的cgi-bin目錄。在14.2章中有更多描述。

libexec/diskd(optional)

假如你指定了--enable-storeio=diskd,你才能看到它。

libexec/pinger(optional)

假如你指定了--enable-icmp,你才能看到它。

etc

etc目錄包含squid的配置文件。

etc/squid.conf

這是squid的主要配置文件。初始的該文件包含了大量的注釋,用以解釋每一個(gè)選項(xiàng)做什么。在你理解了這些配置指令后,建議你刪除這些注釋,讓配置文件更小和更容易閱讀。注意假如該文件存在,安裝過程不會(huì)覆蓋該文件。

etc/squid.conf.default

這是從源代碼目錄中拷貝過來的默認(rèn)配置文件。在升級(jí)了squid安裝后,你也許發(fā)現(xiàn)有一份當(dāng)前默認(rèn)配置文件的拷貝是有用的。可能會(huì)增加新的配置指令,一些存在的舊指令可能有所改變。

etc/mime.conf

mime.conf文件告訴squid對(duì)從FTP和Gopher服務(wù)器獲取的數(shù)據(jù)使用何種MIME類型。該文件是一個(gè)關(guān)聯(lián)文件名擴(kuò)展到MIME類型的表。正常而言,你不必編輯該文件。然而,你可能需要增加特殊文件類型的接口,它們?cè)谀愕慕M織內(nèi)使用。

etc/mime.conf.default

這是從源代碼目錄里拷貝過來的默認(rèn)mime.conf文件。

share

share目錄通常包括squid的只讀數(shù)據(jù)文件。

share/mib.txt

這是squid的SNMP管理信息基礎(chǔ)(MIB)文件。squid自身不使用該文件,然而,你的SNMP客戶端軟件(例如snmpget和多路由走向圖(MRTG))需要該文件,用以理解來自squid的SNMP對(duì)象可用。

share/icons

share/icons目錄包含大量的小圖標(biāo)文件,squid用在FTP和Gopher目錄列舉里。正常而言,你不必?fù)?dān)心這些文件,但如果需要,你可以改變它們。

share/errors

share/errors目錄包含了squid顯示給用戶看的錯(cuò)誤消息模板。這些文件在你安裝squid時(shí),從源代碼目錄拷貝而來。如果需要你可以編輯它們。然而,在每次運(yùn)行make install時(shí),安裝過程總會(huì)覆蓋它們。所以假如你想定制錯(cuò)誤消息,建議你把它們放在不同的目錄。

var

var目錄包含了不是很重要的和經(jīng)常變化的文件。這些文件你不必正常的備份它們。

var/logs

var/logs目錄是squid不同日志文件的默認(rèn)位置。當(dāng)你第一次安裝squid時(shí),它是空的。一旦squid開始運(yùn)行,你能在這里看到名字為access.log,cache.log和store.log這樣的文件。

2.3.6 squid.conf 語法

Squid的配置文件相對(duì)規(guī)范。它與其他許多unix程序相似。每行以配置指令開始,后面跟著數(shù)字值或關(guān)鍵字。在讀取配置文件時(shí),squid忽略空行和注釋掉的行(以#開始)。如下是一些配置行示例:

cache_log /squid/var/cache.log

# define the localhost ACL

acl Localhost src 127.0.0.1/32

connect_timeout 2 minutes

log_fqdn on

某些指令取唯一值。在這些情形下,重復(fù)賦予該指令不同的值,將覆蓋前面的值。例如,下面是一個(gè)連接超時(shí)值。第一行無效,因?yàn)榈诙懈采w了它:

connect_timeout 2 minutes

connect_timeout 1 hour

另外,某些指令取列表值。在這些情形下,每一個(gè)新增的值都有效。"擴(kuò)展方式"指令以這種方法工作:

extension_methods UNGET

extension_methods UNPUT

extension_methods UNPOST

對(duì)這些基于列表的指令,你通常能在同一行中賦予多個(gè)值:

extension_methods UNGET UNPUT UNPOST

許多指令有通用類型。例如,連接超時(shí)值是一個(gè)時(shí)間規(guī)范,在數(shù)字后面跟著時(shí)間單元。例如:

connect_timeout 3 hours

client_lifetime 4 days

negative_ttl 27 minutes

類似的,大量的指令指向文件大小或者內(nèi)存額度。例如,你可以這樣編寫大小規(guī)范:十進(jìn)制數(shù)字后面跟bytes,KB,MB或GB.例如:

minimum_object_size 12 bytes

request_header_max_size 10 KB

maximum_object_size 187 MB

另一種值得提起的類型是觸發(fā)器,它的值是on或者off。許多指令使用該類型。例如:

server_persistent_connections on

strip_query_terms off

prefer_direct on

通常,配置文件指令能以任何順序出現(xiàn)。然而,如果某個(gè)指令指向的值被其他指令所定義,那么順序就很重要。訪問控制列表是個(gè)好的例子。acl被用在http_access規(guī)則之前必須被定義:

acl Foo src 1.2.3.4

http_access deny Foo

squid.conf文件里的許多東西是大小寫敏感的,例如指令名。你不能將http_port寫成HTTP_port。

默認(rèn)的squid.conf文件包含了對(duì)每個(gè)指令的大量注釋,以及指令的默認(rèn)值。例如:

# TAG: persistent_request_timeout

# How long to wait for the next HTTP request on a persistent

# connection after the previous request completes.

#

#Default:

# persistent_request_timeout 1 minute

每次安裝squid后,當(dāng)前默認(rèn)配置文件存放在$prefix/etc目錄下的squid.conf.default。既然指令每次都有所改變,你能參考該文檔,以獲取最近的更新。

2.3.7 squid 用戶

你可能知道,unix進(jìn)程和文件擁有文件和組屬主的屬性。你必須選擇某個(gè)用戶和組給squid。該用戶和組的組合,必須對(duì)大部分squid相關(guān)的文件和目錄有讀和寫的權(quán)限。

我高度推薦創(chuàng)建名為"squid"的用戶和組。這避免了某人利用squid來讀取系統(tǒng)中的其他文件。假如不止一個(gè)人擁有對(duì)squid的管理權(quán)限,你可以將他們加到squid組里。

不幸的是,運(yùn)行squid并非總是如此簡單。在某些情況下,你必須以root來啟動(dòng)squid,這依賴于你的配置。例如,僅僅root能綁定TCP套接字到特權(quán)端口上,如80。假如你必須以root來啟動(dòng)squid,你必須設(shè)置cache_effective_user指令。它告訴squid,在執(zhí)行完需要特別權(quán)限的任務(wù)后,變成哪個(gè)用戶。例如:

cache_effective_user squid

你提供的該名字必須是有效用戶(在/etc/passwd文件里)。請(qǐng)注意僅僅當(dāng)你以root來啟動(dòng)squid時(shí),你才需要用到該指令。僅僅root有能力來隨意改變用戶身份。假如你以joe來啟動(dòng)squid,它不能改變到squid用戶。

你可能嘗試不設(shè)置cache_effective_user,直接以root來運(yùn)行squid。假如你試過,你會(huì)發(fā)現(xiàn)squid拒絕運(yùn)行。這違背了安全規(guī)則。假如外部***者有能力危及或利用squid,他能獲取對(duì)系統(tǒng)的全部訪問權(quán)。盡管我們努力使squid安全和少bug,但還是穩(wěn)重點(diǎn)好。

假如你沒有設(shè)置cache_effective_user,以root來啟動(dòng)squid,squid使用nobody作為默認(rèn)值。不管你選擇什么用戶ID,請(qǐng)確認(rèn)它有對(duì)下面目錄的讀訪問權(quán):$prefix/etc,$prefix/libexec,$prefix/share.該用戶ID也必須有對(duì)日志文件和緩存目錄的寫訪問權(quán)。

squid也有一個(gè)cache_effective_group指令,但你也許不必設(shè)置它。默認(rèn)的,squid使用cache_effective_user的默認(rèn)組(從/etc/passwd文件讀?。?。

# /usr/sbin/useradd -s /sbin/nologin squid -M

默認(rèn)用戶為nobody

# grep cache_effective_user /usr/local/squid/etc/squid.conf

#  TAG: cache_effective_user

# cache_effective_user nobody

修改用戶及組

cache_effective_user squid

cache_effective_group squid

2.3.8 squid 日志路徑

你必須確認(rèn)日志文件所存放的磁盤位置空間足夠。在squid寫日志時(shí)如果接受到錯(cuò)誤,它會(huì)退出和重啟。該行為的主要理由應(yīng)引起你的注意。squid想確認(rèn)你不會(huì)丟失任何重要的日志信息,特別是你的系統(tǒng)被濫用或者被***時(shí)。

squid有三個(gè)主要的日志文件:cache.log,access.log,store.log.

cache.log:

包含狀態(tài)性的和調(diào)試性的消息。當(dāng)你剛開始運(yùn)行squid時(shí),你應(yīng)密切的關(guān)注該文件。假如squid拒絕運(yùn)行,理由也許會(huì)出現(xiàn)在cache.log文件的結(jié)尾處。在正常條件下,該文件不會(huì)變得很大。也請(qǐng)注意,假如你以-s選項(xiàng)來運(yùn)行squid,重要的cache.log消息也可被送到你的syslog進(jìn)程。通過使用cache_log指令,你可以改變?cè)撊罩疚募穆窂剑?/p>

access.log:

access.log文件包含了對(duì)squid發(fā)起的每個(gè)客戶請(qǐng)求的單一行。一般為HTTP訪問日志,每行平均約150個(gè)字節(jié)。也就是說,在接受一百萬條客戶請(qǐng)求后,它的體積約是150M。請(qǐng)使用cache_access_log指令來改變?cè)撊罩疚募穆窂剑?/p>

cache_access_log /squid/logs/access.log

store.log:

store.log文件對(duì)大多數(shù)cache管理員來說并非很有用。它包含了進(jìn)入和離開緩存的每個(gè)目標(biāo)的記錄。平均記錄大小典型的是175-200字節(jié)。然而,squid不在store.log里對(duì)cache點(diǎn)擊創(chuàng)建接口,所以它比access.log包含少得多的記錄。請(qǐng)使用cache_store_log指令來改變它的位置

cache_store_log /squid/logs/store.log

access_log /usr/local/squid/var/logs/access.log squid

cache_log /usr/local/squid/var/logs/cache.log

cache_store_log /usr/local/squid/var/logs/store.log

2.3.9 squid緩存路徑

cache_dir: 指定磁盤的緩存路徑

cache_dir ufs /usr/local/squid/var/cache 100 16 256

100 指定目錄大小MB

16 一級(jí)目錄的數(shù)量

256 二級(jí)子目錄的數(shù)量

2.3.10 squid 端口

http_port指令告訴squid在哪個(gè)端口偵聽HTTP請(qǐng)求。默認(rèn)端口是3128:

http_port 3128

如果squid 作為反向代理,應(yīng)該將此值設(shè)置為80

你能使用附加的http_port行,來指示squid偵聽在多個(gè)端口上。假如你必須支持客戶組(它們被配置得不一致),這點(diǎn)就經(jīng)常有用。例如,來自某個(gè)部門的瀏覽器發(fā)送請(qǐng)求到3128,然而另一個(gè)部門使用80端口。簡單的將兩個(gè)端口號(hào)列舉出來:

http_port 3128

http_port 8080

你也能使用http_port指令來使squid偵聽在指定的接口地址上。當(dāng)squid作為防火墻運(yùn)行時(shí),它有兩個(gè)網(wǎng)絡(luò)接口:一個(gè)內(nèi)部的和一個(gè)外部的。你可能不想接受來自外部的http請(qǐng)求。為了使squid僅僅偵聽在內(nèi)部接口上,簡單的將IP地址放在端口號(hào)前面:

http_port 192.168.1.1:3128

例如:如果本機(jī)運(yùn)行http和squid 則指定ip地址即可:192.168.1.1:80

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:squid安裝簡單說明-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://muchs.cn/article34/deiise.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣、Google、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司