亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Squid3.0反向代理如何配置及安裝

發布時間:2021-11-12 13:49:41 來源:億速云 閱讀:121 作者:小新 欄目:云計算

小編給大家分享一下Squid3.0反向代理如何配置及安裝,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

下載squid 3.0

1.可以用下述命令獲得squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE13.tar.gz
2.建立squid用戶
useradd squid -M -c “Squid user” -d /dev/null -s /sbin/nologin
3. 配制系統環境

在我們的Linux下運行:

# ulimit -n
1024

很顯然1024可能無法滿足需求,重新設置

# ulimit -HSn 65536
# ulimit -n
65536

需要將ulimit -HSn 65536設置在/etc/rc.d/rc.local中,防止重啟后失效, 花費時間來增加這個限制值的大小。否則,squid在高負載時執行性能將很低。

當然你還可以在每一次系統啟動后執行上述echo和ulimit命令,或者至少在squid啟動之前。假如你使用某個rc.d腳本來啟動squid,那是一個放置這些命令的好地方。
臨時端口范圍

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

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

你能使用netstat命令來顯示有多少個連接進入這個狀態:
% netstat -n | grep TIME_WAIT

Proto Recv-Q Send-Q Local Address          Foreign Address        (state)

tcp4       0      0 192.43.244.42.19583    212.67.202.80.80       TIME_WAIT

tcp4       0      0 192.43.244.42.19597    202.158.66.190.80      TIME_WAIT

tcp4       0      0 192.43.244.42.19600    207.99.19.230.80       TIME_WAIT

tcp4       0      0 192.43.244.42.19601    216.131.72.121.80      TIME_WAIT

tcp4       0      0 192.43.244.42.19602    209.61.183.115.80      TIME_WAIT

tcp4       0      0 192.43.244.42.3128     128.109.131.47.25666   TIME_WAIT

tcp4       0      0 192.43.244.42.3128     128.109.131.47.25795   TIME_WAIT

tcp4       0      0 192.43.244.42.3128     128.182.72.190.1488    TIME_WAIT

tcp4       0      0 192.43.244.42.3128     128.182.72.190.2194    TIME_WAIT

注意這個例子中既有客戶端連接又有服務器端的連接。客戶端連接有3128作為臨時端口號,服務器端連接有80作為遠程主機的端口號。臨時端口號出現在本地地址欄里。在該例子里,它們是19000秒。

在Linux上,簡單的寫一對數字到下列指定文件:

# echo “1024 40000″ > /proc/sys/net/ipv4/ip_local_port_range

不要忘記將這些命令加到你的系統啟動腳本中,以使機器每一次重啟后都生效。

4. 編譯安裝

tar -zxvf squid-3.0.STABLE13.tar.gz

cd squid-3.0.STABLE13

./configure –prefix=/usr/local/squid3 –enable-dlmalloc –enable-gnuregex –enable-async-io –enable-removal-policies=’heap,lru’ –enable-delay-pools –disable-snmp –enable-storeio=’ufs,aufs,null’ –disable-wccp –enable-kill-parent-hack –disable-select –enable-auth=basic –with-aio –disable-ident-lookup –with-filedescriptors=65536 –enable-err-languages=”Simplify_Chinese” –enable-default-err-languages=”Simplify_Chinese”

make

make install

后面每一參數,對有對應的意思。這里就不在解釋,網上有很多。

其實squid最重要的就一個squid.conf的配制問題。

在/usr/local/squid3/etc/squid.conf

參照下面的示例來理解配置文件

visible_hostname squid1.ihompy.com  
#設定squid的主機名,如無此項squid將無法啟動  
http_port 80 accel vhost vport  
#設定squid為accel加速模式,vhost必須要加.否則將無法將主機頭轉發至后端服務器,訪問時就會出現無法找到主機頭的錯誤  
cache_peer www.contentchina.com parent 80 0 no-query originserver name=contentchina  
cache_peer bbs.contentchina.com parent 80 0 no-query originserver name=bbs  
cache_peer www.ihompy.com parent 80 0 no-query originserver name=ihompy  
#定義不同的父節點,將節點設為no-query以及originserver說明這些節點是實際服務器  
cache_peer_domain contentchina www.contentchina.com  
cache_peer_domain bbs  bbs.contentchina.com  
cache_peer_domain ihompy www.ihompy.com  
#設定不同域名轉發到不同的cache_peer上,如果沒有這項.不同域名的域名可能被分發到同一臺服務器上.  
acl all src 0.0.0.0/0.0.0.0  
http_access allow all  
#允許所有客戶端訪問  
cache_log /var/log/squid/cache.log  
#記錄日志  
#***********ACL存取控制*************  
acl QueryString url_regex \.   php?  
#***********緩沖存取控制*************  
no_cache deny QueryString  
#不對符合QueryString的ACL內容進行緩沖  
#***********性能優化配置*************  
maximum_object_size 320010 KB  
#大于此容量的對象將不會被保存在磁盤上,默認大小是4M,如果squid服務器用于緩沖flash等大型文件,建議將此值變大.否則過大的文件在下次重啟后將需要重新獲取  
maximum_object_size_in_memory 100 KB  
#最大位于內存中的對象的大小,默認大小是8K,如果服務器內存很大.可以適當提高此值的大小,建議根據網站的80%圖片的大小來定.或者根據WEB服務器實際存取文件中最常訪問的文件大小來定制  
#***********其他可選配置*************  
dns_nameservers 10.0.0.1 192.172.0.4  
#配置DNS服務器地址.獲取后端時將從此dns獲取IP地址  
cache_mgr code_tin@msn.com  
#在錯誤日志中出現的webmaster地址.

Squid 3.0與2.6一樣.相較2.5的accel模式下配置要簡單許多
只要設置不同的后端,cache_peer parent originserver
就可以進行反向代理
而不再需要httpd_accel系列參數的配置.
配置squid時最好制定內部dns,或者修改/etc/hosts文件
否則squid可能會回環訪問其自身而出現問題.

自己的配置過程:

http_port 80   選項 http_port 指定squid監聽HTTP請求的端口,一般都設置成80端口,這樣使用戶感覺不到反向代理的存在,就像訪問真正
的WEB服務器一樣。

我配置的是:http_port 80 accel vhost vport

cache_mem 128 MB          共享內存大小(squid在提供服務的時候所使用的內存)

maximum_object_size_in_memory 512 KB   最大緩存文件大小,超過此值則不緩存

memory_replacement_policy lru      替換機制  (lru叫做 最近不常用的單元 unit一般就是常說的object 也就是當cache中的內容比如內存或硬盤達到上限時的 那么就需要進行數據的換進和換出工作)

cache_dir null /tmp  cache_dir存儲cache內容也就是object的物理存放點 

cache_dir ufs /tmp1 10000 16 256  (/tmp size L1 L2)
100G其中1層目錄16個 并且每個1層目錄下又有256個2層目錄[或者說子目錄]
#磁盤緩存的類型和目錄,大小,一二級目錄的設置,這里磁盤緩存大小是10G
ufs是一種文件存儲方式 因為os一般都是從內存獲取數據 那么內存的東西必須最后寫的硬盤上~
sync 同步的時候用的ufs 那么squid也是一樣
ufs一般是同時寫入內存和硬盤
注意:size是按照M為單位的也就這個目錄中最大存儲容量的上限

max_open_disk_fds 0

minimum_object_size 0 KB

maximum_object_size 4096 KB

logformat squid  %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
設置access_log中日志存儲的格式~

access_log /usr/local/squid3/var/logs/access.log squid   
access_log為客戶端請求的日志 

cache_log /usr/local/squid3/var/logs/cache.log     
為squid自身的運行日志 

pid_filename /usr/local/squid3/var/logs/squid.pid
此三項是設置PID和日志文件位置

cache_store_log none  不記錄store.log   我配置的是可以允許

visible_hostname wqgcool.wqgcool.net
wqgcool.wqgcool.net    只是標簽  有利于檢查是否你的那臺設備在提供服務!

cache_peer newtest.haishang.com       parent    80  0 no-query round-robin max-conn=32 originserver

acl all src 0.0.0.0/0.0.0.0  */3.0后默認是全部允許了。

故配置成:acl all src

給/usr/local/squid3/var/logs 等權限

chmod -R 777 /usr/local/squid3/var

chmod -R 777 /usr/local/squid3/var/logs

chown squid:squid -R /usr/local/squid3/var/logs

接下來

acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
這個squid.conf我沒找到。


cache_effective_user squid
cache_effective_group squid
這兩個我沒有配置,如配置的話,squid啟動一會兒就會關閉。

沒啟用的話,進程里會顯示nobody身份啟動的。反正不影響工作。

可以用ps auxwww | grep squid 查看進程

 

5.測試配置是否正確
# /usr/local/squid2/sbin/squid
-k parse
出現ERROR:
WARNING: Cannot write log file: /usr/local/squid3/var/logs/cache.log
/usr/local/squid3/var/logs/cache.log: Permission denied
         messages will be sent to ‘stderr’.
2008/03/13 12:53:09| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid3/var/cache: (13) Permission denied

/usr/local/squid2/sbin/squid -z 
Create swap directories 是創建SWAP目錄的! 也就是cache_dir 中的目錄
啟動squid
/usr/local/squid3/sbin/squid -Nd1
ps aux |grep squid 查看是否啟動
squid 常用命令
Squid安裝設試命令:

很明顯權限不對,修改后測試通過!

1,初始化你在 squid.conf 里配置的 cache 目錄
#/usr/local/squid/sbin/squid -z     //初始化緩存空間
如果有錯誤提示,請檢查你的 cache目錄的權限。

2,對你的squid.conf 排錯,即驗證 squid.conf 的 語法和配置。
#/usr/local/squid/sbin/squid -k parse
如果squid.conf 有語法或配置錯誤,這里會返回提示你,如果沒有返回,恭喜,可以嘗試啟動squid。

3,在前臺啟動squid,并輸出啟動過程。
#/usr/local/squid/sbin/squid -N -d1
如果有到 ready to server reques,恭喜,啟動成功。
然后 ctrl + c,停止squid,并以后臺運行的方式啟動它。

4,啟動squid在后臺運行。
#/usr/local/squid/sbin/squid -s
這時候可以 ps -A 來查看系統進程,可以看到倆個 squid 進程。

5,停止 squid
#/usr/local/squid/sbin/squid -k shutdown
這個不用解釋吧。

6,重引導修改過的 squid.conf
#/usr/local/squid/sbin/squid -k reconfigure //載入新的配置文件
這個估計用的時候比較多,當你發現你的配置有不盡你意的時候,可以隨時修改squid.conf,然后別忘記對你的 squid.conf排錯,然后再執行此指令,即可讓squid重新按照你的 squid.conf 來運行。

7./usr/local/squid/sbin/squid -k rotate 輪循日志

8,把squid添加到系統啟動項
編輯 /etc/rc.d/rc.local
添加如下行: /usr/local/squid/sbin/squid -s
利用Runc腳本……..

再來點其他的。
1,修改cache 緩存目錄的權限。
#chown -R squid:squid /data/cache
我的cache緩存目錄是 /data/cache,squid執行用戶和用戶組是 squid,squid。

2,修改squid 日志目錄的權限
#chown -R squid:squid /usr/local/squid/var/logs
這一步并不是適合每一個使用squid的用戶.意為讓squid有權限在該目錄進行寫操作 。
例如生成 access.log    cache.log   store.log

3,查看你的日志文檔。
#more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
該指令可以看到在squid運行過程中,有那些文件被squid緩存到內存中,并返回給訪問用戶。
#more /usr/local/squid/var/logs/access.log | grep TCP_HIT
該指令可以看到在squid運行過程中,有那些文件被squid緩存到cache目錄中,并返回給訪問用戶。
#more /usr/local/squid/var/logs/access.log | grep TCP_MISS
該指令可以看到在squid運行過程中,有那些文件沒有被squid緩存,而是現重原始服務器獲取并返回給訪問用戶。
關于 TCP_XXXX 等參數及代表的信息,請參看《squid中文權威指南》13.2.1 章節。
當然,本例中的藍色文字是可以修改為其他的參數,例如你的域名 www.xxxx.com ,同樣可以看到access.log里關于該域名的行。

二.squid命中率分析

squid/bin/squidclient -p 80 mgr:info
squid/bin/squidclient -p 80 mgr:5min
可以看到詳細的性能情況,其中PORT是你的proxy的端口,5min可以是60min

取得squid運行狀態信息: squidclient -p 80 mgr:info
*取得squid內存使用情況: squidclient -p 80 mgr:mem
*取得squid已經緩存的列表: squidclient -p 80 mgrbjects. use it carefully,it may crash
*取得squid的磁盤使用情況: squidclient -p 80 mgr:diskd
*強制更新某個url:squidclient -p 80 -m PURGE http://www.yejr.com/static.php
*更多的請查看:squidclient-h 或者 squidclient -p 80 mgr:

查命中率:
/usr/local/squid/bin/squidclient -h211.222.111.111 -p80 mgr:info
/usr/local/squid/bin/squidclient -h具體的IP -p80 mgr:info

以上是“Squid3.0反向代理如何配置及安裝”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

白城市| 海宁市| 平舆县| 武邑县| 宣恩县| 理塘县| 永登县| 宽城| 仲巴县| 商洛市| 琼海市| 洛阳市| 北票市| 邛崃市| 阳谷县| 栾川县| 博乐市| 霍邱县| 汕头市| 化隆| 泾阳县| 东源县| 突泉县| 古田县| 习水县| 和硕县| 乌恰县| 长汀县| 涪陵区| 衡东县| 仪陇县| 理塘县| 资兴市| 济南市| 应城市| 个旧市| 安丘市| 原阳县| 徐闻县| 和林格尔县| 新邵县|