日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

squid反向代理(实现缓存)加速web

發(fā)布時(shí)間:2025/5/22 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 squid反向代理(实现缓存)加速web 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)驗(yàn):squid反向代理服務(wù)器加速web

-by zlong

一、實(shí)驗(yàn)環(huán)境

1)兩臺(tái)linux主機(jī)(Red Hat Enterprise Linux),分別是RHEL1-WEBRHEL2-SQUIDsquid代理服務(wù)器和DNS服務(wù)器在RHEL2-SQUID上,apache服務(wù)器在RHEL1-WEB

RHEL1-WEB(內(nèi)網(wǎng))上

IP

網(wǎng)關(guān)

域名

192.168.1.107/24eth0

192.168.1.1


10.1.1.2/24eth0:1

10.1.1.1

Web1.huawei.com

10.1.1.3/24eth0:2

10.1.1.1

Web2.huawei.com

10.1.1.4/24eth0:3

10.1.1.1

Web3.huawei.com

RHEL2-SQUIDsquid代理服務(wù)器)

外網(wǎng)網(wǎng)卡eth0

192.168.1.109/24

內(nèi)網(wǎng)網(wǎng)卡eth1

10.1.1.1/24

2Win7本地主機(jī):

IP192.168.1.104/24gateway192.168.1.1

3)瀏覽器

Sougou3.2

二、配置網(wǎng)卡的IP

兩臺(tái)linux的網(wǎng)卡eth0上的IP事先已配好,且已設(shè)置開(kāi)機(jī)啟動(dòng)此處略

[root@RHEL1-WEBetc]# ifconfig eth0:1 10.1.1.2netmask 255.255.255.0 up

[root@RHEL1-WEBetc]# ifconfig eth0:2 10.1.1.3netmask 255.255.255.0 up

[root@RHEL1-WEBetc]# ifconfig eth0:3 10.1.1.4netmask 255.255.255.0 up

[root@RHEL2-SQUIDsquid]# ifconfig eth1 10.1.1.1 netmask 255.255.255.0 up

其他網(wǎng)卡開(kāi)機(jī)啟動(dòng)的設(shè)置

1RHEL1-WEB上的eth0:1eth0:2eth0:3

[root@RHEL1-WEBconf]# cd /etc/sysconfig/network-scripts/

[root@RHEL1-WEBnetwork-scripts]# cp -p ifcfg-eth0 ifcfg-eth0:1

[root@RHEL1-WEBnetwork-scripts]# cp -p ifcfg-eth0 ifcfg-eth0:2

[root@RHEL1-WEBnetwork-scripts]# cp -p ifcfg-eth0 ifcfg-eth0:3

[root@RHEL1-WEBnetwork-scripts]# vi ifcfg-eth0:1

修改為以下內(nèi)容

DEVICE=eth0:1

BOOTPROTO=static

ONBOOT=yes

IPADDR=10.1.1.2

NETMASK=255.255.255.0

GATEWAY=10.1.1.1

eth0:2eth0:3仿照進(jìn)行配置

2RHEL2-SQUID上的eth1

[root@RHEL2-SQUIDsquid]# cd /etc/sysconfig/network-scripts/

[root@RHEL2-SQUIDnetwork-scripts]# vi ifcfg-eth1

修改為以下內(nèi)容

DEVICE=eth1

BOOTPROTO=static

ONBOOT=yes

IPADDR=10.1.1.1

NETMASK=255.255.255.0

GATEWAY=10.1.1.1

HWADDR=00:0c:29:4c:81:11

三、創(chuàng)建huawei.com的正向區(qū)域

DNS服務(wù)器的安裝此處省略!

[root@RHEL2-SQUID~]# cd /var/named/chroot/etc

[root@RHEL2-SQUIDetc]#vi named.rfc1912.zones

增加以下區(qū)域:

zone "huawei.com"IN {

type master;

file "huawei.com.hosts";

allow-update {none; };

};

創(chuàng)建huawei.com的正向解析區(qū)域數(shù)據(jù)庫(kù)文件

[root@RHEL2-SQUIDetc]#cd /var/named/chroot/var/named

[root@RHEL2-SQUIDnamed]# cp -p localhost.zonehuawei.com.hosts

[root@RHEL2-SQUIDnamed]# vi huawei.com.hosts

編輯為以下內(nèi)容:

$TTL86400

@IN SOAns.huawei.com.root.huawei.com. (

42; serial (d. adams)

3H; refresh

15M; retry

1W; expiry

1D ); minimum

IN NSns.huawei.com.

ns.huawei.com.IN A10.1.1.1

www.huawei.com.IN A10.1.1.2

IN A10.1.1.3

IN A10.1.1.4

web1.huawei.com.IN A10.1.1.2

web2.huawei.com.IN A10.1.1.3

web3.huawei.com.IN A10.1.1.4

保存退出,重啟DNS

[root@RHEL2-SQUIDnamed]# service named restart

修改DNS的客戶端配置文件

[root@RHEL2-SQUIDnamed]# vi /etc/resolv.conf

在末尾添加:(若之前其中有其他域的DNS,不用覆蓋,不影響效果)

search huawei.com

nameserver10.1.1.1

四、安裝配置squid服務(wù)器

RHEL2-SQUID上進(jìn)行

[root@RHEL2-SQUIDnamed]# mount /dev/hdc /mnt/cdrom

mount: blockdevice /dev/hdc is write-protected, mounting read-only

[root@RHEL2-SQUIDnamed]# cd /mnt/cdrom/Server

[root@RHEL2-SQUIDServer]# find -name "squid*"

./squid-2.6.STABLE21-3.el5.i386.rpm

[root@RHEL2-SQUIDServer]#rpm -ivh squid-2.6.STABLE21-3.el5.i386.rpm

warning:squid-2.6.STABLE21-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID37017186

Preparing...########################################### [100%]

1:squid########################################### [100%]

安裝成功,下面開(kāi)始配置

[root@RHEL2-SQUIDServer]# cd /etc/squid

[root@RHEL2-SQUIDsquid]# cp -p squid.confsquid.conf.bak

[root@RHEL2-SQUIDsquid]# rm –rf squid.conf

squid.conf 的配置是實(shí)現(xiàn)緩存的重點(diǎn)和原理

[root@RHEL2-SQUIDsquid]# vi squid.conf

添加以下配置信息

http_port80 accel vhost vport

cache_dirufs /var/spool/squid 100 16 256

cache_mem32 MB

cache_swap_low90

cache_swap_high95

cache_access_log/var/log/squid/access.log

cache_effective_usersquid

cache_effective_groupsquid

aclall src 0.0.0.0/0.0.0.0

acllocalhost src 127.0.0.1/255.255.255.255

http_accessallow localhost

http_accessallow all

http_reply_accessallow all

coredump_dir/var/spool/squid

visible_hostnamewww.huawei.com

cache_peer10.1.1.2 parent 80 0no-queryoriginserver weight=1 name=web1

cache_peer10.1.1.3 parent 80 0no-queryoriginserver weight=1 name=web2

cache_peer10.1.1.4 parent 80 0no-queryoriginserver weight=1 name=web3

cache_peer_domainweb1 www.huawei.com

cache_peer_domainweb2 www.huawei.com

cache_peer_domainweb3 www.huawei.com

cache_peer_accessweb1 allow all

cache_peer_accessweb2 allow all

cache_peer_accessweb3 allow all

保存退出


創(chuàng)建squid的緩存目錄,并重啟squid,設(shè)置開(kāi)機(jī)啟動(dòng),修改DNS客戶端配置文件


[root@RHEL2-SQUIDsquid]#squid–z

[root@RHEL2-SQUIDsquid]# service squid restart

[root@RHEL2-SQUIDsquid]#ntsysv

[root@RHEL2-SQUIDetc]# viresolv.conf

更改緩存目錄的文件和目錄所有者以及權(quán)限

[root@RHEL2-SQUIDspool]# chown -R squid.squid squid

[root@RHEL2-SQUIDspool]# chmod 777 squid

、安裝配置apache

[root@RHEL1-WEB ]#cd /mnt/cdrom/Server

[root@RHEL1-WEBServer]# find -name "httpd*"

./httpd-2.2.3-22.el5.i386.rpm

./httpd-devel-2.2.3-22.el5.i386.rpm

./httpd-manual-2.2.3-22.el5.i386.rpm

[root@RHEL1-WEBServer]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm

warning:httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Faileddependencies:

libapr-1.so.0 isneeded by httpd-2.2.3-22.el5.i386

libaprutil-1.so.0is needed by httpd-2.2.3-22.el5.i386

有包的依賴關(guān)系,依次安裝下面幾個(gè)包

[root@RHEL1-WEBServer]# rpm -ivh apr-1.2.7-11.i386.rpm

[root@RHEL1-WEBServer]# rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm

[root@RHEL1-WEBServer]# rpm -ivh apr-util-1.2.7-7.el5.i386.rpm

[root@RHEL1-WEBServer]# rpm -ivh httpd-2.2.3-22.el5.i386.rpm

安裝完畢,設(shè)置開(kāi)機(jī)啟動(dòng)

[root@RHEL1-WEBServer]# ntsysv

配置

[root@RHEL1-WEBetc]# cd /etc/httpd/conf/

[root@RHEL1-WEBconf]# ll

總計(jì) 52

-rw-r--r-- 1 rootroot 33726 2008-11-12 httpd.conf

-rw-r--r-- 1 rootroot 12958 2008-11-12 magic

[root@RHEL1-WEBconf]# cp -p httpd.confhttpd.conf.bak

[root@RHEL1-WEBconf]# vihttpd.conf

1)找到#ServerNamenew.host.name:80這一行修改為:

ServerName10.1.1.1:80這里更改的是apache默認(rèn)站點(diǎn)的名稱和端口號(hào),很重要的一步,缺少它最后解析不出來(lái))

2)在配置文件末尾添加以下內(nèi)容(三個(gè)基于IP的虛擬主機(jī))

<VirtualHost10.1.1.2>

ServerAdminwebmaster@dummy-host.example.com

DocumentRoot/www/web1

ServerName web1.huawei.com

</VirtualHost>

<VirtualHost10.1.1.3>

ServerAdminwebmaster@dummy-host.example.com

DocumentRoot/www/web2

ServerName web2.huawei.com

</VirtualHost>

<VirtualHost 10.1.1.4>

ServerAdminwebmaster@dummy-host.example.com

DocumentRoot/www/web3

ServerName web3.huawei.com

</VirtualHost>

保存退出,創(chuàng)建虛擬主機(jī)的文檔根目錄及三個(gè)網(wǎng)站的相同的頁(yè)面index.html

[root@RHEL1-WEBconf]# mkdir -p /www/web1

[root@RHEL1-WEBconf]# mkdir -p /www/web2

[root@RHEL1-WEBconf]# mkdir -p /www/web3

[root@RHEL1-WEBconf]# vi /www/web1/index.html

輸入:這是網(wǎng)站的測(cè)試頁(yè)面!(測(cè)試信息)

[root@RHEL1-WEBconf]# cp -p /www/web1/index.html /www/web2/index.html

[root@RHEL1-WEBconf]# cp -p /www/web1/index.html /www/web2/index.html

[root@RHEL1-WEBconf]# cp -p /www/web1/index.html /www/web3/index.html

重啟httpd

[root@RHEL1-WEBconf]# service httpd restart

修改RHEL1-WEBDNS的客戶端配置文件

[root@RHEL1-WEB named]#vi /etc/resolv.conf

在末尾添加:(若之前其中有其他域的DNS,不用覆蓋,不影響效果)

searchhuawei.com

nameserver10.1.1.1

六、激活squid服務(wù)器上的路由轉(zhuǎn)發(fā)功能

[root@RHEL2-SQUID~]#echo 1 > /proc/sys/net/ipv4/ip_forward

寫入開(kāi)機(jī)啟動(dòng)

[root@RHEL2-SQUID~]# vi /etc/rc.d/rc.local

編輯/etc/rc.d/rc.local在后面寫上上面一句

七、測(cè)試

1)在win7上打開(kāi)C:\windows\system32\drivers\etc\hosts

添加以下一條主機(jī)記錄:

192.168.1.109www.huawei.com

2)把win7的首選DNS改為RHEL2-SQUIDsquid服務(wù)器的外網(wǎng)IP,即192.168.1.109

3)連通性測(cè)試

RHEL1-WEB上:

第一次ping www.huawei.com

[root@RHEL1-WEB~]# ping www.huawei.com

PING www.huawei.com(10.1.1.2) 56(84) bytes of data.

64 bytes from10.1.1.2: icmp_seq=1 ttl=64 time=0.594 ms

64 bytes from10.1.1.2: icmp_seq=2 ttl=64 time=0.069 ms

第二次ping www.huawei.com

[root@RHEL1-WEB~]# ping www.huawei.com

PING www.huawei.com(10.1.1.4) 56(84) bytes of data.

64 bytes from10.1.1.4: icmp_seq=1 ttl=64 time=0.108 ms

64 bytes from10.1.1.4: icmp_seq=2 ttl=64 time=0.039 ms

第三次ping www.huawei.com

[root@RHEL1-WEB~]# ping www.huawei.com

PING www.huawei.com(10.1.1.3) 56(84) bytes of data.

64 bytes from10.1.1.3: icmp_seq=1 ttl=64 time=0.049 ms

64 bytes from10.1.1.3: icmp_seq=2 ttl=64 time=0.039 ms

64 bytes from10.1.1.3: icmp_seq=3 ttl=64 time=0.041 ms

通過(guò)連續(xù)三次ping,發(fā)現(xiàn)返回的IP都不一樣,由此可知通過(guò)DNS的輪詢配置實(shí)現(xiàn)了負(fù)載均衡(連續(xù)三次訪問(wèn)websquid分別把請(qǐng)求送給了三臺(tái)web,依次循環(huán)往復(fù),減少了一臺(tái)web的壓力)

RHEL2-SQUID上同樣可以得出上述結(jié)果!

win7上:

C:\Users\guoyin>pingwww.huawei.com

正在 Ping www.huawei.com [192.168.1.109]具有 32 字節(jié)的數(shù)據(jù):

來(lái)自192.168.1.109 的回復(fù): 字節(jié)=32 時(shí)間=5ms TTL=64

來(lái)自192.168.1.109 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

來(lái)自192.168.1.109 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

來(lái)自192.168.1.109 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=64

C:\Users\guoyin>pingweb1.huawei.com

正在 Ping web1.huawei.com [10.1.1.2] 具有 32 字節(jié)的數(shù)據(jù):

請(qǐng)求超時(shí)。

請(qǐng)求超時(shí)。

請(qǐng)求超時(shí)。

說(shuō)明:在外網(wǎng)上ping www.huawei.com時(shí),返回的IPsquid服務(wù)器的外網(wǎng)IP,而直接ping內(nèi)網(wǎng)的web服務(wù)器時(shí)ping不通。由此可知隱藏了內(nèi)網(wǎng)的web站點(diǎn),實(shí)現(xiàn)了代理。

4)在瀏覽器上測(cè)試

至此,測(cè)試成功。說(shuō)明squid服務(wù)器成功搭建,能夠?qū)崿F(xiàn)對(duì)內(nèi)網(wǎng)web加速!


轉(zhuǎn)載于:https://blog.51cto.com/zlong37/1393727

總結(jié)

以上是生活随笔為你收集整理的squid反向代理(实现缓存)加速web的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。