91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

squid 安裝簡單說明

發布時間:2020-06-27 16:53:48 來源:網絡 閱讀:1113 作者:ckl893 欄目:系統運維

suid 下載及安裝

1. squid 安裝硬件要求

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

squid對硬件要求不算高。內存是最重要的資源。內存短缺會嚴重影響性能。磁盤空間也是另一個重要因素。更多的磁盤空間意味著更多的緩存目標和更高的命中率。快速的磁盤和驅動器也是有利的。如果你舍得花錢,SCSI磁盤比ATA的執行性能好。當然快速的CPU也是好的,但它并不是提高性能的關鍵因素。

因為squid對每個緩存響應使用少數內存,因此在磁盤空間和內存要求之間有一定聯系。基本規則是,每G磁盤空間需要32M內存。這樣,512M內存的系統,能支持16G的磁盤緩存。你的情況當然會不同。內存需求依賴于如下事實:緩存目標大小,CPU體系(32位或64位),同時在線的用戶數量,和你使用的特殊功能。

人們經常問如此問題:“我的網絡有X個用戶,需要配備什么樣的硬件給squid?”因為許多理由,這樣的問題好難回答。特別的,很難說X個用戶將產生多少流量。我告訴人們去建立一個有足夠磁盤空間,可存儲3-7天web流量數據的系統。例如,假如你的用戶每天8小時耗費1M流量(僅僅HTTP和FTP傳輸),那就是每天大約3.5G。所以,我可以說,每兆web傳輸你需要10到25G的磁盤空間。


2.2.squid 下載及安裝

2.2.1.squid 下載地址

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


2.2.3.安裝前準備

 1) 文件描述符修改

     文件描述符是一個簡單的整數,用以標明每一個被進程所打開的文件和socket。第一個打開的文件是0,第二個是1,依此類推。Unix操作系統通常給每個進程能打開的文件數量強加一個限制。更甚的是,unix通常有一個系統級的限制。

因為squid的工作方式,文件描述符的限制可能會極大的影響性能。當squid用完所有的文件描述符后,它不能接收用戶新的連接。也就是說,用完文件描述符導致拒絕服務。直到一部分當前請求完成,相應的文件和socket被關閉,squid不能接收新請求。當squid發現文件描述符短缺時,它會發布警告。

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

通常在你的Unix shell中能找到系統的文件描述符限制。所有的C shell及其類似的shell有內建的limit命令。更新的Bourne shell及其類似的shell有一條叫做ulimit的命令。為了發現你的系統的文件描述符限制。

  方法一:

  ulimit -SHn 20480

  方法二:

  vi /etc/security/limits.conf 

  *    -    nofile  20480


  2)調整臨時端口范圍

   臨時端口是TCP/IP棧分配給出去連接的本地端口。換句話說,當squid發起一條連接到另一臺服務器,內核給本地socket分配一個端口號。這些本地端口號有特定的范圍限制。例如,在FreeBSD上,默認的臨時端口范圍是1024-5000。

臨時端口號的短缺對非常忙的代理服務器(例如每秒數百個連接)來說,會較大的影響性能。這是因為一些TCP連接在它們被關閉時進入TIME_WAIT狀態。當連接進入TIME_WATI狀態時,臨時端口號不能被重用。

  查看本地端口范圍:

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

    #32768   61000

  修改臨時端口范圍:

    #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.目錄結果說明:

# 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啟動


sbin/squid

Squid的主程序


bin

bin目錄包含對所有用戶可用的程序


bin/RunCache

RunCache是一個shell腳本,你能用它來啟動squid。假如squid死掉,該腳本自動重啟它,除非它檢測到經常的重啟。RunCache是一個時間遺留的產物,那時Squid還不是后臺服務進程。在最近的版本里,RunCache很少用到,因為Squid自動重啟它自身,當你不使用-N選項時。


bin/RunAccel

RunAccel與RunCache幾乎一致,唯一的不同是它增加了一個命令行參數,告訴squid在哪里偵聽HTTP請求。


bin/squidclient

squidclient是個簡單的HTTP客戶端程序,你能用它來測試squid。它也有一些特殊功能,用以對運行的squid進程發起管理請求。


libexec

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


libexec/unlinkd

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


libexec/cachemgr.cgi

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


libexec/diskd(optional)

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


libexec/pinger(optional)

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


etc

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


etc/squid.conf

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


etc/squid.conf.default

這是從源代碼目錄中拷貝過來的默認配置文件。在升級了squid安裝后,你也許發現有一份當前默認配置文件的拷貝是有用的。可能會增加新的配置指令,一些存在的舊指令可能有所改變。


etc/mime.conf

mime.conf文件告訴squid對從FTP和Gopher服務器獲取的數據使用何種MIME類型。該文件是一個關聯文件名擴展到MIME類型的表。正常而言,你不必編輯該文件。然而,你可能需要增加特殊文件類型的接口,它們在你的組織內使用。


etc/mime.conf.default

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


share

share目錄通常包括squid的只讀數據文件。


share/mib.txt

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


share/icons

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


share/errors

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


var

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


var/logs

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


2.3.6 squid.conf 語法

Squid的配置文件相對規范。它與其他許多unix程序相似。每行以配置指令開始,后面跟著數字值或關鍵字。在讀取配置文件時,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


某些指令取唯一值。在這些情形下,重復賦予該指令不同的值,將覆蓋前面的值。例如,下面是一個連接超時值。第一行無效,因為第二行覆蓋了它:

connect_timeout 2 minutes

connect_timeout 1 hour

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

extension_methods UNGET

extension_methods UNPUT

extension_methods UNPOST

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

extension_methods UNGET UNPUT UNPOST


許多指令有通用類型。例如,連接超時值是一個時間規范,在數字后面跟著時間單元。例如:

connect_timeout 3 hours

client_lifetime 4 days

negative_ttl 27 minutes


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

minimum_object_size 12 bytes

request_header_max_size 10 KB

maximum_object_size 187 MB


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

server_persistent_connections on

strip_query_terms off

prefer_direct on


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

acl Foo src 1.2.3.4

http_access deny Foo


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

默認的squid.conf文件包含了對每個指令的大量注釋,以及指令的默認值。例如:

# 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后,當前默認配置文件存放在$prefix/etc目錄下的squid.conf.default。既然指令每次都有所改變,你能參考該文檔,以獲取最近的更新。


2.3.7 squid 用戶

你可能知道,unix進程和文件擁有文件和組屬主的屬性。你必須選擇某個用戶和組給squid。該用戶和組的組合,必須對大部分squid相關的文件和目錄有讀和寫的權限。

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

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

cache_effective_user squid

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

你可能嘗試不設置cache_effective_user,直接以root來運行squid。假如你試過,你會發現squid拒絕運行。這違背了安全規則。假如外部***者有能力危及或利用squid,他能獲取對系統的全部訪問權。盡管我們努力使squid安全和少bug,但還是穩重點好。

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

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


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

默認用戶為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 日志路徑

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

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

cache.log:

包含狀態性的和調試性的消息。當你剛開始運行squid時,你應密切的關注該文件。假如squid拒絕運行,理由也許會出現在cache.log文件的結尾處。在正常條件下,該文件不會變得很大。也請注意,假如你以-s選項來運行squid,重要的cache.log消息也可被送到你的syslog進程。通過使用cache_log指令,你可以改變該日志文件的路徑:

access.log:

access.log文件包含了對squid發起的每個客戶請求的單一行。一般為HTTP訪問日志,每行平均約150個字節。也就是說,在接受一百萬條客戶請求后,它的體積約是150M。請使用cache_access_log指令來改變該日志文件的路徑:

cache_access_log /squid/logs/access.log

store.log:

store.log文件對大多數cache管理員來說并非很有用。它包含了進入和離開緩存的每個目標的記錄。平均記錄大小典型的是175-200字節。然而,squid不在store.log里對cache點擊創建接口,所以它比access.log包含少得多的記錄。請使用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 一級目錄的數量

256 二級子目錄的數量


2.3.10 squid 端口

http_port指令告訴squid在哪個端口偵聽HTTP請求。默認端口是3128:

http_port 3128

如果squid 作為反向代理,應該將此值設置為80

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

http_port 3128

http_port 8080

你也能使用http_port指令來使squid偵聽在指定的接口地址上。當squid作為防火墻運行時,它有兩個網絡接口:一個內部的和一個外部的。你可能不想接受來自外部的http請求。為了使squid僅僅偵聽在內部接口上,簡單的將IP地址放在端口號前面:

http_port 192.168.1.1:3128


例如:如果本機運行http和squid 則指定ip地址即可:192.168.1.1:80


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敦化市| 图木舒克市| 丁青县| 神农架林区| 阳高县| 安新县| 武功县| 金乡县| 佛山市| 阳原县| 江西省| 离岛区| 宝清县| 洛浦县| 静海县| 南丰县| 渝北区| 临夏市| 栾城县| 嘉峪关市| 永寿县| 通辽市| 鹰潭市| 横峰县| 鄢陵县| 泰安市| 东港市| 林州市| 金门县| 呼伦贝尔市| 紫云| 定结县| 莒南县| 龙游县| 万全县| 玉山县| 怀仁县| 凤冈县| 扶沟县| 越西县| 合肥市|