缓存加速CDN——squid代理服务器应用(传统代理,透明代理)
生活随笔
收集整理的這篇文章主要介紹了
缓存加速CDN——squid代理服务器应用(传统代理,透明代理)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
squid代理服務(wù)
- 一、緩存代理概述
- 1.1 web代理的工作機(jī)制
- 1.2 阿里云CDN產(chǎn)品介紹與工作原理
- 1.3 代理的基本類(lèi)型
- 1.4 使用代理的好處
- 二、部署squid傳統(tǒng)代理
- 2.1 實(shí)驗(yàn)環(huán)境
- 2.2 實(shí)驗(yàn)拓?fù)?[在這里插入圖片描述](https://img-blog.csdnimg.cn/20200908002204337.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3MTYxMjk1,size_16,color_FFFFFF,t_70#pic_center)
- 2.2 實(shí)驗(yàn)步驟
- 三、部署squid透明代理
- 3.1 實(shí)驗(yàn)環(huán)境
- 3.2 實(shí)驗(yàn)拓?fù)?[在這里插入圖片描述](https://img-blog.csdnimg.cn/20200908003228130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ3MTYxMjk1,size_16,color_FFFFFF,t_70#pic_center)
- 3.3 實(shí)驗(yàn)步驟
一、緩存代理概述
1.1 web代理的工作機(jī)制
- 緩存網(wǎng)頁(yè)對(duì)象,減少重復(fù)請(qǐng)求
- 它是這樣實(shí)現(xiàn)其功能的,接受來(lái)自人們需要下載的目標(biāo)(object)的請(qǐng)求并適當(dāng)?shù)靥幚磉@些請(qǐng)求
- 也就是說(shuō),如果一個(gè)人想下載一web頁(yè)面,他請(qǐng)求Squid為他取得這個(gè)頁(yè)面。Squid隨之連接到遠(yuǎn)程服務(wù)器(比如:http://squid.nlanr.net/)并向這個(gè)頁(yè)面發(fā)出請(qǐng)求
- 然后,Squid顯式地聚集數(shù)據(jù)到客戶端機(jī)器,而且同時(shí)復(fù)制一份。當(dāng)下一次有人需要同一頁(yè)面時(shí),Squid可以簡(jiǎn)單地從磁盤(pán)中讀到它,那樣數(shù)據(jù)迅即就會(huì)傳輸?shù)娇蛻魴C(jī)上。
1.2 阿里云CDN產(chǎn)品介紹與工作原理
1.3 代理的基本類(lèi)型
傳統(tǒng)代理:適用于Internet,需明確指定服務(wù)端
透明代理:客戶機(jī)不許指定代理服務(wù)器的地址和端口,而是通過(guò)默認(rèn)路由、防火墻策略將web訪問(wèn)重定向給代理服務(wù)器好處
1.4 使用代理的好處
提高web訪問(wèn)速度
隱藏客戶機(jī)的真實(shí)ip地址
二、部署squid傳統(tǒng)代理
2.1 實(shí)驗(yàn)環(huán)境
- VMware軟件
- XSHELL
- 一臺(tái)centos7虛擬機(jī)作為squid服務(wù)器,IP地址為:192.168.200.60
- 一臺(tái)centos7虛擬機(jī)作為web服務(wù)器,IP地址為:192.168.200.80
- 一臺(tái)win10虛擬機(jī)作為client測(cè)試機(jī),IP地址為:192.168.200.11
2.2 實(shí)驗(yàn)拓?fù)?/h2>
2.2 實(shí)驗(yàn)步驟
1、配置squid代理服務(wù)器
[root@localhost ~]# hostnamectl set-hostname squid [root@localhost ~]# su [root@squid ~]# tar zxvf squid-3.4.6.tar.gz -C /opt/ [root@squid ~]# cd /opt/ [root@squid opt]# yum -y install gcc gcc-c++ [root@squid opt]# cd squid-3.4.6/ [root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \ > --sysconfdir=/etc \ 配置文件存在目錄 > --enable-arp-acl \ 啟用acl訪問(wèn)控制列表 > --enable-linux-netfilter \ 內(nèi)核過(guò)濾 > --enable-linux-tproxy \ 支持透明代理模式 > --enable-async-io=100 \ io優(yōu)化 吞吐量 > --enable-err-language="Simplify Chinese" \ 報(bào)錯(cuò)提示簡(jiǎn)體中文 > --enable-underscore \ 支持URL中下劃線 > --enable-poll \ poll功能模塊 > --enable-gnuregex 正則表達(dá)式 [root@squid squid-3.4.6]# make && make install [root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/ [root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid [root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/ [root@squid squid-3.4.6]# vim /etc/squid.conf56 http_access allow all 允許所有57 #http_access deny all 注釋60 http_port 312861 cache_effective_user squid 添加管理用戶62 cache_effective_group squid 添加管理組 [root@squid squid-3.4.6]# squid -k parse 檢查配置文件語(yǔ)法 [root@squid squid-3.4.6]# squid -z 初始化緩存目錄 [root@squid squid-3.4.6]# squid 啟動(dòng) [root@squid squid-3.4.6]# netstat -ntap | grep 3128 tcp6 0 0 :::3128 :::* LISTEN 125515/(squid [root@squid squid-3.4.6]# cd /etc/init.d/ [root@squid init.d]# vim squid #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" '//PID文件進(jìn)程號(hào)' CONF="/etc/squid.conf" '//主配置文件' CMD="/usr/local/squid/sbin/squid" '//啟動(dòng)命令'case "$1" in start)netstat -ntap | grep squid &> /dev/nullif [ $? -eq 0 ]then echo "squid is running"elseecho "正在啟動(dòng) squid...." $CMDfi;; stop)$CMD -k kill &> /dev/null '//關(guān)閉squid'rm -rf $PID &> /dev/null '//刪除PID文件';; status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -ntap | grep squidelseecho "squid is not running"fi;; restart)$0 stop &> /dev/nullecho "正在關(guān)閉 squid..."$0 start &> /dev/nullecho "正在啟動(dòng) squid...";; reload)$CMD -k reconfigure '//重載配置文件';; check)$CMD -k parse '//檢查語(yǔ)法';; *)echo "用法:$0{start|stop|reload|status|check|restart}";; esac [root@squid init.d]# chmod +x squid [root@squid init.d]# ls functions netconsole network README squid [root@squid init.d]# chkconfig --add squid 添加管理 [root@squid init.d]# chkconfig --level 35 squid on 開(kāi)機(jī)自啟 設(shè)置傳統(tǒng)代理服務(wù)器 [root@squid init.d]# vim /etc/squid.conf63 cache_mem 64 MB64 reply_body_max_size 10 MB65 maximum_object_size 4096 KB [root@squid init.d]# iptables -F [root@squid init.d]# iptables -t nat -F [root@squid init.d]# setenforce 0 [root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT [root@web ~]# cd /var/log/httpd/ [root@web httpd]# ls access_log error_log [root@web httpd]# cat access_log2、設(shè)置web服務(wù)器
[root@localhost ~]# hostnamectl set-hostname web [root@localhost ~]# su [root@web ~]# yum -y install httpd [root@web ~]# systemctl start httpd.service [root@web ~]# netstat -antp | grep httpd tcp6 0 0 :::80 :::* LISTEN 90278/httpd [root@web ~]# iptables -F [root@web ~]# setenforce 0使用win10服務(wù)器,打開(kāi)代理,輸入ip 192.168.200.60和端口3128
訪問(wèn)Apache成功
查看Apache服務(wù)器日志
三、部署squid透明代理
squid服務(wù)器添加網(wǎng)卡且上網(wǎng)卡都改成僅主機(jī)模式,web服務(wù)器改成僅主機(jī)模式,win10也改成僅主機(jī)模式
3.1 實(shí)驗(yàn)環(huán)境
- VMware軟件
- XSHELL
- 一臺(tái)centos7虛擬機(jī)作為squid服務(wù)器,IP地址為:192.168.200.60 192.168.10.1
- 一臺(tái)centos7虛擬機(jī)作為web服務(wù)器,IP地址為:192.168.200.80
- 一臺(tái)win10虛擬機(jī)作為client測(cè)試機(jī),IP地址為:192.168.10.10
3.2 實(shí)驗(yàn)拓?fù)?/h2>
3.3 實(shí)驗(yàn)步驟
1、配置squid服務(wù)器,添加雙網(wǎng)卡并配置,配置為僅主機(jī)
[root@squid ~]# cd /etc/sysconfig/network-scripts/ [root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 NAME=ens36 DEVICE=ens36 ONBOOT=yes IPADDR=192.168.10.1 NETMASK=255.255.255.0 [root@squid network-scripts]# vim /etc/sysctl.conf net.ipv4.ip_forward=1 //開(kāi)啟路由功能 [root@squid network-scripts]# sysctl -p net.ipv4.ip_forward = 1 [root@squid network-scripts]# service network restart Restarting network (via systemctl): [ 確定 ] [root@squid network-scripts]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.200.60 netmask 255.255.255.0 broadcast 192.168.200.255 ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.10.1 [root@squid network-scripts]# vim /etc/squid.conf60 http_port 192.168.10.1:3128 transparent //如果監(jiān)聽(tīng)到這個(gè)端口就改成透明模式 [root@squid network-scripts]# squid -k parse 檢驗(yàn)語(yǔ)法 [root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 //80端口重定向3128端口 [root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 //80端口重定向3128端口 [root@squid network-scripts]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT [root@squid network-scripts]# service squid restart2、Apache服務(wù)器的配置為僅主機(jī)模式,配置靜態(tài)路由指網(wǎng)關(guān)
[root@web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR=192.168.200.80 GATEWAY=192.168.200.1 NETMASK=255.255.255.0 [root@localhost httpd]# route add -net 192.168.10.0/24 gw 192.168.200.60 //配置靜態(tài)路由指網(wǎng)關(guān)3、win10改成僅主機(jī),訪問(wèn)web端,不需要設(shè)置代理,自動(dòng)通過(guò)squid代理加速
總結(jié)
以上是生活随笔為你收集整理的缓存加速CDN——squid代理服务器应用(传统代理,透明代理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java中成员变量的加载时机_工作奇谈—
- 下一篇: 记 · 七言古诗 · 劝学