日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

缓存加速CDN——squid代理服务器应用(传统代理,透明代理)

發布時間:2024/3/13 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缓存加速CDN——squid代理服务器应用(传统代理,透明代理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

squid代理服務

  • 一、緩存代理概述
    • 1.1 web代理的工作機制
    • 1.2 阿里云CDN產品介紹與工作原理
    • 1.3 代理的基本類型
    • 1.4 使用代理的好處
  • 二、部署squid傳統代理
    • 2.1 實驗環境
    • 2.2 實驗拓撲![在這里插入圖片描述](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 實驗步驟
  • 三、部署squid透明代理
    • 3.1 實驗環境
    • 3.2 實驗拓撲![在這里插入圖片描述](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 實驗步驟

一、緩存代理概述

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_log

2、設置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服務器日志

[root@web httpd]# cat access_log 192.168.200.60 - - [06/Sep/2020:14:13:35 +0800] "GET /noindex/css/fonts/Bold/OpenSans-Bold.woff HTTP/1.1" 404 239 "http://192.168.200.80/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363" 192.168.200.60 - - [06/Sep/2020:14:13:35 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://192.168.200.80/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363" 192.168.200.60 - - [06/Sep/2020:14:13:35 +0800] "GET /noindex/css/fonts/Bold/OpenSans-Bold.ttf HTTP/1.1" 404 238 "http://192.168.200.80/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"

三、部署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 restart

2、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代理服务器应用(传统代理,透明代理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。