Squid ----反向代理模式

一:定义

​ Squid作为代理服务软件,其主要功能是使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,有一定的安全性,但是如果想让互联上的主机访问内部网的主机资源(例如:web站点),又想使内部主机免受外部网主机攻击,一般的代理服务是不能实现的,这就需要反向代理来实现。通过squid反向代理可以加速网站的访问速度,可以将不同的URL请求分发到后台不同的Web服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。

二:工作原理

​ 反向代理服务器位于本地WEB 服务器和Internet 之间,当用户浏览器发出一个HTTP 请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB 服务器的反向代理,需要将多个WEB 服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求,反向代理一般只缓存可缓冲的数据(比如html 网页和图片等),而一些CGI 脚本程序或者ASP 之类的程序不缓存,它根据从WEB 服务器返回的HTTP 头标记来缓冲静态页面。

三:实验环境

目的:

  • squid服务器配置反向代理,客户机添加squid代理,然后访问squid服务器域名时跳转到web服务器页面。
  • 以轮询的方式依次显示web1、web2

四:实验过程

  • Squid服务器配置

1、挂载squid软件包并解压
[root@localhost ~]# hostnamectl set-hostname squid
[root@localhost ~]# su
[root@squid ~]# mkdir /abc
[root@squid ~]# mount.cifs //192.168.100.1/share /abc
[root@squid ~]# cd /abc
[root@squid abc]# tar zxvf squid-3.4.6.tar.gz -C /opt
2、安装编译工具,再编译,再安装
[root@squid abc]# cd squid-3.4.6
[root@squid squid-3.4.6]# yum install gcc gcc-c++ -y[root@squid squid-3.4.6]# ./configure
--prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex[root@squid squid-3.4.6]# make && make install
3、创建软链接,优化服务控制方式
[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin
4、建立程序性用户squid ,并赋予权限
[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/
5、修改主配置文件
[root@squid squid-3.4.6]# vim /etc/squid.conf

6、设置防火墙规则
[root@squid squid-3.4.6]# iptables -F    ‘清空所有规则’
[root@squid squid-3.4.6]# iptables -t nat -F    ‘清除所有NAT规则’
[root@squid squid-3.4.6]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    ‘允许目标端口3128转发’
7、检擦语法并开启服务
[root@squid squid-3.4.6]# squid -k parse    ‘检查语法,没问题Ctrl+C键取消’
[root@squid squid-3.4.6]# squid -z     ‘初始化缓存目录’
[root@squid squid-3.4.6]# squid   ‘启动服务’
[root@squid squid-3.4.6]# netstat -ntap | grep squid    ‘检测是否启动成功’
8、编辑脚本,优化服务控制方式
[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"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"case "$1" in
start)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid...."echo "成功启动"$CMDfi;;
stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;
status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho "squid is not running"fi;;
restart)$0 stop &> /dev/nullecho "正在关闭 squid..."echo "关闭成功"$0 start &> /dev/nullecho "正在启动 squid..."echo "启动成功";;
reload)$CMD -k reconfigure;;
check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";;
esac[root@squid init.d]# chmod +x squid    ‘添加权限’
[root@squid init.d]# chkconfig --add squid    ‘便于service识别’
[root@squid init.d]# service squid stop   ‘关闭squid服务’
[root@squid init.d]# service squid start   ‘开启squid’
9、修改网卡信息
[root@squid squid-3.4.6]# cd /etc/sysconfig/network-scripts/
[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@squid network-scripts]# vim ifcfg-ens36

[root@suqid network-scripts]# service network restart
Restarting network (via systemctl):                        [  确定  ]
  • Web01服务器配置

[root@web01 ~]# systemctl stop firewalld.service
[root@web01 ~]# setenforce 0
[root@web01 ~]# yum install httpd -y
[root@web01 ~]# cd /var/www/html
[root@web01 html]# vim index.html
<h1>this is test1 web</h1>[root@web01 html]# systemctl start httpd.service
[root@web01 html]# netstat -ntap | grep 80
tcp6       0      0 :::80       :::*       LISTEN      3843/httpd[root@web01 html]# route add -net 192.168.10.0/24 gw 192.168.48.128
在win10客户机测试

  • Web02服务器配置

[root@web02 ~]# systemctl stop firewalld.service
[root@web02 ~]# setenforce 0
[root@web02 ~]# yum install httpd -y
[root@web02 ~]# cd /var/www/html/
[root@web02 html]# ls
[root@web02 html]# vim index.html
<h1>this is test2 web</h1>[root@web02 html]# systemctl start httpd.service
[root@web02 html]# netstat -ntap | grep 80
tcp     0    36 192.168.48.132:22     192.168.48.1:51780    ESTABLISHED 2434/sshd: root@pts
tcp6      0     0 :::80                 :::*                LISTEN      4050/httpd
在win10客户机测试

10、客户端设置域名解析和squid代理并测试

(以 administrator用户登录 )


以谷歌浏览器为例:

通过客户机访问www.hao.com ,以轮询的方式显示web界面。

Squid ----反向代理模式相关推荐

  1. 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    案例: Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入 访问用户:电信宽带用户.移动宽带用户 出现问题:电信用户打开www.abc.com正常,移动用户打 ...

  2. Squid 反向代理服务器配置

    Squid 反向代理服务器配置 简介: Squid 反向代理常用于服务器端,客户端访问 Squid 代理服务器的 80 端口,Squid 代理服务器根据配置去请求后端的 web 服务器,    然后将 ...

  3. 利用 squid 反向代理提高网站性能

    本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术, ...

  4. Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)

    文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...

  5. squid反向代理作为web前端内容缓存器及局域网内客户机通过代理服务器上网

    反向代理服务器有两种传输模式: 1.同步模式:(如:squid)用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完成前这个连接是一直存在的. 2.异步模式 ...

  6. ATS 5.3.0在反向代理模式下实现正向代理功能方法

    以前,我在records.config中一般是配置成正向+反向的形式: 现在我打算改为反向代理模式,但是需要实现正向代理的功能: 同时在remap.config中配置 regex_map http:/ ...

  7. Squid反向代理加速WEB

    简介: Linux 下著名代理软件Squid, 通常被用作上网代理,比如代理内网的Web服务,起到加速浏览的作用,一般可以设为透明代理. 透明代理设置主要有: ACL设置 acl all src 0. ...

  8. 网站渗透测试服务 squid反向代理代码执行漏洞的挖掘

    在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名 ...

  9. squid 反向代理

    使用Squid配置反向代理(HTTP加速器)通过squid配置反向代理主要就是配置"squid.conf"这个配置文件.下面以Linux操作系统为例进行介绍,其它版本的在UNIX也 ...

最新文章

  1. 【php】运算符优先级界定
  2. socket编程实现回声客户端
  3. 浅谈android Service和BroadCastReceiver
  4. ubuntu 只有客人会话登录(第一次深刻感受文件权限的威力 )
  5. 《软件项目管理(第二版)》第 4 章——项目估算 重点部分总结
  6. 快速搭建移动应用直传服务
  7. Delphi+GDI
  8. VMWARE 之 vSphere vCenter 安装基本配置
  9. iOS开发初学者入门需要学习哪些知识?
  10. 抓取lol全英雄图(不含皮肤)
  11. 揭秘本世纪惊心动魄的粮食战争!中国反败为胜,但国际粮商仍未服输
  12. matlab中的函数简化,matlab的简化函数simple
  13. 小程序源码:全新动态视频壁纸-多玩法安装简单
  14. 小笨狼的LLDB技巧:chisel
  15. 几个吓尿了的公众号,前几个你不可能没听过
  16. ARMv7体系结构汇总
  17. 【Blog】Hexo_Next_博客搭建记 (by onlychristmas)
  18. SATA系列专题之六:浅析NCQ原生指令序列
  19. 树莓派4B Raspbian系统常用Linux 命令及快捷键
  20. vue写的购物车界面

热门文章

  1. 西安的IT要怎么才能发展?
  2. 大数据时代下如何保障信息安全?
  3. 群辉查看硬盘存储占用的方式
  4. JavaSE第21篇:Java之IO流下篇
  5. 20169218 2016-2017-2 《网络攻防实践》第二周学习总结
  6. 高中数学必修一二次函数与幂函数试题及答案
  7. Mina State machine状态机讲解
  8. 深度学习入门 | Self-attentionRNNLSTM
  9. 笨鸟之Serlvet解析
  10. dapr的consistent hash