squid 透明代理,反向代理,acl访问控制

squid 的三种代理方式:1普通代理;2透明代理  3反向代理;

cleint(192.168.1.20)----> eth0(192.168.1.10)|  squid   |eth1(1.1.1.254)  ---->server(1.1.1.1)

1.普通代理;squid是代替内网 访问外网;  缓存:加快内网的访问速度;

服务器端配置:ip 1.1.1.1

关闭防火墙和selinux

[[email protected] ~]# /etc/init.d/iptables stop

iptables: Setting chains to policy ACCEPT: nat filter      [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

[[email protected] ~]# setenforce 0

yum install -y httpd

echo "1.1.1.1web" >/var/www/html/index.html

本机测试:

[[email protected] ~]# elinks --dump 1.1.1.1

1.1.1.1web//本机测试成功;

squid代理端的配置:

[[email protected] log]# vim /etc/squid/squid.conf

#http_access deny all  //拒绝所有

http_access allow all//允许所有的人使用本机的代理

[[email protected] log]# /etc/init.d/squid restart

Stopping squid:                                            [FAILED]

Starting squid: .                                          [  OK  ]

[[email protected] log]# lsof -i :3128

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

squid   3406 squid   14u  IPv6  18682      0t0  TCP *:squid (LISTEN)

客户端的配置:

在浏览器中制定代理和端口即可;

2.透明代理:客户端不需要制定浏览器ip地址和端口;

前提条件:{1.代理服务器也是内网的防火墙,}

客户端的配置:

把代理服务器做为client的默认网关;

route add -net default gw 192.168.1.10

squid的配置:

vim /etc/squid/squid.conf

http_port 3128 transparent//修改代理方式为透明代理;

[[email protected] /]# /etc/init.d/squid restart

Stopping squid: ................                           [  OK  ]

Starting squid: .                                          [  OK  ]

//添加一条防火墙策略进行端口转发

[[email protected] /]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

[[email protected] /]# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination

REDIRECT   tcp  --  192.168.1.0/24       anywhere            tcp dpt:http redir ports 3128

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

3.反向代理:代替外网访问内网 ,缓存加快外网的访问速度(可以实现多个web服务器来提供服务);

squid端的配置:

http_port 80 vhost

cache_peer 192.168.1.20 parent 80 0 originserver

就这么简单就实现了:反向代理;剩下的在服务段配置httpd即可;

客户端访问squid就OK了;

4.反向代理+虚拟主机(基于域名):

要求:互联网上的客户端www.haha.com的时候访问的服务器/www

bbs.haha.com的时候访问的服务器/bbs

服务器端用虚拟主机来实现:

vim /etc/httpd/conf.d/VirtualHost.conf

NameVirtualHost 192.168.1.20:80

<VirtualHost 192.168.1.20:80>

ServerAdmin [email protected]

DocumentRoot /www

ServerName www.haha.com

ErrorLog logs/www-error_log

CustomLog logs/www-access_log common

</VirtualHost>

<VirtualHost 192.168.1.20:80>

ServerAdmin [email protected]

DocumentRoot /bbs

ServerName   bbs.haha.com

ErrorLog logs/bbs-error_log

CustomLog logs/bbs-access_log common

</VirtualHost>

在服务器端本机测试:

vim  /etc/hosts    //添加静态解析

192.168.1.20    www.haha.com

192.168.1.20    bbs.haha.com

[[email protected] conf.d]# elinks --dump www.haha.com

192.168.1.20:www

[[email protected] conf.d]# elinks --dump bbs.haha.com

192.168.1.20:bbs

//测试成功!

配置反向代理服务器:

vim /etc/squid/squid.conf

http_port 80 vhost

cache_peer 192.168.1.20 parent 80 0 originserver name=www

cache_peer 192.168.1.20 parent 80 0 originserver name=bbs

cache_peer_domain www www.haha.com

cache_peer_domain bbs bbs.haha.com

service squid restart

客户端的配置;

vim /etc/hosts

1.1.1.254       bbs.haha.com

1.1.1.254       www.haha.com

[[email protected] ~]# elinks --dump www.haha.com

192.168.1.20:www

[[email protected] ~]# elinks --dump bbs.haha.com

192.168.1.20:bbs

//测试成功!!

5.squid的ACL(访问控制)

acl     acl名称 类型 匹配的目标对象;

类型总结:

src  :  原地址 (是ip,网段,主机名)

192.168.1.10/32   192.168.1.0/24  www.haha.com

dst    目标地址 (同上);

port     端口 25

dstdomian 目标域 .baidu.com

time 时间 MTWHFAS(周一到周五)  8:30-20:30

maxcoon 最大的并发连接数;

acl maxline   maxconn   50

url_regex     目标的URL地址   (可以用正则表达式);

acl  deny_url     url_regex    ^http://

http_access  deny   deny_acl

URLpath_regex “完整的url”

http://www.baidu.com/music/xxx.mp3

调用acl  (acl可以先定义后调用,但可以自定义不调用)

http_access   deny/allow   acl名称列表;

综合实践:

acl allow_ip src 192.168.1.0/24

acl deny_ip src 192.168.1.250/32

acl work_time time MTWHF 8:30-17:30

acl deny_qq  url_regex   qq

acl deny_mp3 url_regex mp3$

acl deny_domain dstdomain .taobao.com .jingdong.com

acl deny_url url_regex taobao jingdong

http_access deny deny_domain deny_url

http_access deny work_time deny_qq deny_mp3

http_access deny deny_ip

http_access allow allow_ip

时间: 2024-10-25 08:24:15

squid 透明代理,反向代理,acl访问控制的相关文章

squid缓存服务器————反向代理

squid缓存服务器----反向代理如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用1.首先给网页做区分 [[email protected] httpd]# cd /var/www/html/ [[email protected] html]# ls [[email protected] html]# vim index.htm

爬虫1 爬虫介绍, requests模块, 代理(正向代理,反向代理), 爬梨视频, 自动登录网站, HTTP协议复习

HTTP协议复习 参考:https://www.cnblogs.com/an-wen/p/11180076.html 1爬虫介绍 # 1 本质:模拟发送http请求(requests)---->解析返回数据(re,bs4,lxml,json)--->入库(redis,mysql,mongodb) # 2 app爬虫:本质一模一样 # 3 为什么python做爬虫最好:包多,爬虫框架:scrapy:性能很高的爬虫框架,爬虫界的django,大而全(爬虫相关的东西都集成了) # 4 百度,谷歌,就

squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤.作为应用层的代理服务器软件,Sqiod主要提供了缓存加速和引用层过滤控制能力 代理的工作机制 当客户机通过代理来请求 Web 页面时,指定的代理服务器,会先检查自己的缓存如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机需要访问的页面,则用代理服务器向Internet 发送访问请求. 由于客户机的W

正向代理,反向代理和透明代理的区别

一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(origin server)[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理.如下图1.1 (图1.1) 从上面的概念

squid,nginx,lighttpd反向代理的区别

反向代理从传输上分可以分为2种: 1:同步模式(apache-mod_proxy和squid) 2:异步模式(lighttpd 和 nginx) 在nginx的文档说明中,提到了异步传输模式并提到它可以减少后端连接数和压力,这是为何? 下面就来讲解下传统的代理(apache/squid)的同步传输和lighttpd,nginx的异步传输的差异. 同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个连接.在请求发起直到请求完成,这条连接都是一直存在的.异步传输:浏

搭建squid服务器,反向代理

反向代理(Reverse?Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端

理解正向代理&amp;反向代理

通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中.由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求.当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务.

nginx作为正向代理,反向代理的一些应用

正向代理代理的对象是客户端 反向代理代理的对象是服务端 举例说下nginx作为正向代理作访问控制 server{ listen 80; server_name localhost jeson.gaosf.com; access_log /var/log/nginx/log/host.access.log main; location /{ if($http_x_forwarded_for !~* "^116\.62\.103\.228"){ return 403; } root /op

apache 正向代理反向代理

<VirtualHost *:80>    ServerAdmin [email protected]    DocumentRoot "/var/www/html/"    ServerName www.test.com    ServerAlias test.com    ErrorLog "logs/test.com-error.log"    CustomLog "logs/test.com-access.log" commo

nginx正向代理反向代理负载均衡

1.1  Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度.新浪.网易.腾讯等. 负载均衡是nginx最流行最出名的功能,做为一款分发软件,