缓存加速CDN——squid代理服务器应用(传统代理,透明代理)
生活随笔
收集整理的這篇文章主要介紹了
缓存加速CDN——squid代理服务器应用(传统代理,透明代理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
squid代理服務
- 一、緩存代理概述
- 1.1 web代理的工作機制
- 1.2 阿里云CDN產品介紹與工作原理
- 1.3 代理的基本類型
- 1.4 使用代理的好處
- 二、部署squid傳統代理
- 2.1 實驗環境
- 2.2 實驗拓撲
- 2.2 實驗步驟
- 三、部署squid透明代理
- 3.1 實驗環境
- 3.2 實驗拓撲
- 3.3 實驗步驟
一、緩存代理概述
1.1 web代理的工作機制
- 緩存網頁對象,減少重復請求
- 它是這樣實現其功能的,接受來自人們需要下載的目標(object)的請求并適當地處理這些請求
- 也就是說,如果一個人想下載一web頁面,他請求Squid為他取得這個頁面。Squid隨之連接到遠程服務器(比如:http://squid.nlanr.net/)并向這個頁面發出請求
- 然后,Squid顯式地聚集數據到客戶端機器,而且同時復制一份。當下一次有人需要同一頁面時,Squid可以簡單地從磁盤中讀到它,那樣數據迅即就會傳輸到客戶機上。
1.2 阿里云CDN產品介紹與工作原理
1.3 代理的基本類型
傳統代理:適用于Internet,需明確指定服務端
透明代理:客戶機不許指定代理服務器的地址和端口,而是通過默認路由、防火墻策略將web訪問重定向給代理服務器好處
1.4 使用代理的好處
提高web訪問速度
隱藏客戶機的真實ip地址
二、部署squid傳統代理
2.1 實驗環境
- VMware軟件
- XSHELL
- 一臺centos7虛擬機作為squid服務器,IP地址為:192.168.200.60
- 一臺centos7虛擬機作為web服務器,IP地址為:192.168.200.80
- 一臺win10虛擬機作為client測試機,IP地址為:192.168.200.11
2.2 實驗拓撲
2.2 實驗步驟
1、配置squid代理服務器
[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訪問控制列表 > --enable-linux-netfilter \ 內核過濾 > --enable-linux-tproxy \ 支持透明代理模式 > --enable-async-io=100 \ io優化 吞吐量 > --enable-err-language="Simplify Chinese" \ 報錯提示簡體中文 > --enable-underscore \ 支持URL中下劃線 > --enable-poll \ poll功能模塊 > --enable-gnuregex 正則表達式 [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 檢查配置文件語法 [root@squid squid-3.4.6]# squid -z 初始化緩存目錄 [root@squid squid-3.4.6]# squid 啟動 [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文件進程號' CONF="/etc/squid.conf" '//主配置文件' CMD="/usr/local/squid/sbin/squid" '//啟動命令'case "$1" in start)netstat -ntap | grep squid &> /dev/nullif [ $? -eq 0 ]then echo "squid is running"elseecho "正在啟動 squid...." $CMDfi;; stop)$CMD -k kill &> /dev/null '//關閉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 "正在關閉 squid..."$0 start &> /dev/nullecho "正在啟動 squid...";; reload)$CMD -k reconfigure '//重載配置文件';; check)$CMD -k parse '//檢查語法';; *)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 開機自啟 設置傳統代理服務器 [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、設置web服務器
[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服務器,打開代理,輸入ip 192.168.200.60和端口3128
訪問Apache成功
查看Apache服務器日志
三、部署squid透明代理
squid服務器添加網卡且上網卡都改成僅主機模式,web服務器改成僅主機模式,win10也改成僅主機模式
3.1 實驗環境
- VMware軟件
- XSHELL
- 一臺centos7虛擬機作為squid服務器,IP地址為:192.168.200.60 192.168.10.1
- 一臺centos7虛擬機作為web服務器,IP地址為:192.168.200.80
- 一臺win10虛擬機作為client測試機,IP地址為:192.168.10.10
3.2 實驗拓撲
3.3 實驗步驟
1、配置squid服務器,添加雙網卡并配置,配置為僅主機
[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 //開啟路由功能 [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 //如果監聽到這個端口就改成透明模式 [root@squid network-scripts]# squid -k parse 檢驗語法 [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服務器的配置為僅主機模式,配置靜態路由指網關
[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 //配置靜態路由指網關3、win10改成僅主機,訪問web端,不需要設置代理,自動通過squid代理加速
總結
以上是生活随笔為你收集整理的缓存加速CDN——squid代理服务器应用(传统代理,透明代理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中成员变量的加载时机_工作奇谈—
- 下一篇: 记 · 七言古诗 · 劝学