Squid ----反向代理模式
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 ----反向代理模式相关推荐
- 利用Squid反向代理搭建CDN缓存服务器加快Web访问速度
案例: Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入 访问用户:电信宽带用户.移动宽带用户 出现问题:电信用户打开www.abc.com正常,移动用户打 ...
- Squid 反向代理服务器配置
Squid 反向代理服务器配置 简介: Squid 反向代理常用于服务器端,客户端访问 Squid 代理服务器的 80 端口,Squid 代理服务器根据配置去请求后端的 web 服务器, 然后将 ...
- 利用 squid 反向代理提高网站性能
本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术, ...
- Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)
文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...
- squid反向代理作为web前端内容缓存器及局域网内客户机通过代理服务器上网
反向代理服务器有两种传输模式: 1.同步模式:(如:squid)用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完成前这个连接是一直存在的. 2.异步模式 ...
- ATS 5.3.0在反向代理模式下实现正向代理功能方法
以前,我在records.config中一般是配置成正向+反向的形式: 现在我打算改为反向代理模式,但是需要实现正向代理的功能: 同时在remap.config中配置 regex_map http:/ ...
- Squid反向代理加速WEB
简介: Linux 下著名代理软件Squid, 通常被用作上网代理,比如代理内网的Web服务,起到加速浏览的作用,一般可以设为透明代理. 透明代理设置主要有: ACL设置 acl all src 0. ...
- 网站渗透测试服务 squid反向代理代码执行漏洞的挖掘
在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名 ...
- squid 反向代理
使用Squid配置反向代理(HTTP加速器)通过squid配置反向代理主要就是配置"squid.conf"这个配置文件.下面以Linux操作系统为例进行介绍,其它版本的在UNIX也 ...
最新文章
- 【php】运算符优先级界定
- socket编程实现回声客户端
- 浅谈android Service和BroadCastReceiver
- ubuntu 只有客人会话登录(第一次深刻感受文件权限的威力 )
- 《软件项目管理(第二版)》第 4 章——项目估算 重点部分总结
- 快速搭建移动应用直传服务
- Delphi+GDI
- VMWARE 之 vSphere vCenter 安装基本配置
- iOS开发初学者入门需要学习哪些知识?
- 抓取lol全英雄图(不含皮肤)
- 揭秘本世纪惊心动魄的粮食战争!中国反败为胜,但国际粮商仍未服输
- matlab中的函数简化,matlab的简化函数simple
- 小程序源码:全新动态视频壁纸-多玩法安装简单
- 小笨狼的LLDB技巧:chisel
- 几个吓尿了的公众号,前几个你不可能没听过
- ARMv7体系结构汇总
- 【Blog】Hexo_Next_博客搭建记 (by onlychristmas)
- SATA系列专题之六:浅析NCQ原生指令序列
- 树莓派4B Raspbian系统常用Linux 命令及快捷键
- vue写的购物车界面