Squid代理项目-正向和反向

如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频

1.正向代理、透明代理(也属于正向代理)和反向代理概念

正向代理:代理内部主机上网,共享上网,缓存内网用户上网行为等功能,(客户端需要设置代理服务器的ip和代理端口)

透明代理(也属正向代理):和正向代理功能完全一致,(客户端不需要设置代理服务器的ip和代理端口,对用户透明的)

反向代理:从外部网络访问内部服务器,与正向代理相反,主要用于网站架构的缓存加速或CDN。

注意:正向代理是代理客户端,也称翻墙。

      反向代理是代理服务器,也可做缓存加速和CDN,squid反向代理和nginx的反向代理都可做CDN

参考解释:

CDN是内容分发网络(Content Delivery Network)。是为了解决用户请求响应过慢的问题。比如用户在黑龙江,服务器在海南,用户请求的速度可能受距离、带宽的影响。CDN将几台机器分发在全国各地,用户发出的请求会选择就近的CDN服务器进行处理。CDN简单的来说就是存储一些静态文件的一台或多台服务器,通过复制,缓存主服务器等方式,将文件保存其中。

反向代理一般就是指Nginx,是在主服务器之外加一层代理服务器,用户的请求会发送到代理服务器上,由代理服务器请求真正的服务器,获得到结果后再将结果返回给用户。反向代理主要的用处就是会加一层安全保障,所有的请求不是直接请求主服务器,而是代理服务器,这样就保护了主服务器不受侵害。第二个用处就是代理服务器会有缓存,命中缓存的请求可以不用再请

2.三种代理类型:

正向代理(不透明)、透明代理(也是正向代理)和反向代理。

  1. 正向代理和反向代理参考地址:

https://www.cnblogs.com/yanjieli/p/7507456.html

反向代理和CDN是什么,作用是什么_反向代理服务器和cdn服务器作用-CSDN博客

一、Squid正向代理一(即翻墙)——透明(不用客户端配置)

拓扑1:透明正向代理透明)——代理所有客户端,无acl限制

实现结果:让企业内主机全部主机都能通过squid代理访问到外部的服务器网页,企业内部主机输入地址是外部服务器的IP:172.10.10.6.在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(所有的客户端都可以)

Squid代理配置:

1)配置双网卡IP 

2)开启路由转发   vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)打防火墙规则:

iptables  -t  nat  -I  PREROUTING   -s  192.168.4.0/24  -p  tcp  --dport  80  -j  REDIRECT  --to-ports  3128

修改配置文件:vim  /etc/squid/squid.conf

http_access  allow   all

http_port  3128  transparent  (支持透明代理)

web服务器的配置:

启动httpd服务,建立测试网页(不配网关)

拓扑2透明正向代理透明)——代理部分客户端,有acl限制

实现结果:让企业内主机部分主机通过squid代理访问到外部的服务器网页,企业内部主机输入地址是外部服务器的IP:172.10.10.6.在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(让192.168.4.8和192.168.4.9可以,其他的都不可以)

Squid代理配置:

1)配置双网卡IP

2)开启路由转发 vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)打防火墙规则:

iptables  -t  nat  -I  PREROUTING   -s  192.168.4.0/24  -p  tcp  --dport  80  -j  REDIRECT  --to-ports  3128

修改配置文件:vim  /etc/squid/squid.conf

acl  nolimit  src  192.168.4.8

acl  nolimit  src  192.168.4.9

http_access  allow  nolimit  (其他的allow都删了,否则会影响)

http_access  deny  all

http_port  3128  transparent  (支持透明代理)

web服务器的配置:

启动httpd服务,建立测试网页(不配网关)

二、Squid正向代理二(即翻墙)——非透明(用客户端配置)

拓扑1非透明正向代理1)(非透明代理客户端,需客户端通过浏览器指向代理服务器)

实现结果:让企业内主机全部主机都能通过squid代理访问到外部的服务器网页,企业内部主机输入地址是外部服务器的IP:172.10.10.6.在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(所有的客户端都可以)

Squid代理配置:

1)配置双网卡IP 

2)开启路由转发   vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)保持默认配置文件:vim  /etc/squid/squid.conf

http_access  allow   all                 //改为允许所有,其他保持默认

http_port  3128  

wq

web服务器的配置:

启动httpd服务,建立测试网页(不配网关)

所有客户端上配置:(谁想通过代理访问服务器,谁配置)

[root@localhost 桌面]# yum -y install firefox

[root@localhost 桌面]# firefox &    打开火狐浏览器,如下图:

点击 编辑——首选项后,如下图:

点击高级——网络——设置后,如下图:

指定好代理服务器都IP地址(192.168.4.5)和端口号(3128)后,点击确定——关闭,即可访问web服务器,如下图

web服务器上查看日志: (发现是代理服务器在访问自己,实际是客户端在访问自己

[root@localhost 桌面]# cat /var/log/httpd/access_log

172.10.10.1 - - [20/Mar/2016:22:45:46 +0800] "GET / HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"

拓扑2非透明正向代理2)(非透明代理客户端设置acl权限访问,需客户端通过浏览器指向代理服务器)

实现结果:让企业内主机全部主机都能通过squid代理访问到外部的服务器网页,企业内部主机输入地址是外部服务器的IP:172.10.10.6.在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(让192.168.4.8和192.168.4.9可以,其他的都不可以)

Squid代理配置:

1)配置双网卡IP

2)开启路由转发 vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)修改配置文件:vim  /etc/squid/squid.conf

acl  nolimit  src  192.168.4.8

acl  nolimit  src  192.168.4.9

http_access  allow  nolimit  (其他的allow都删了,否则会影响)

http_access  deny  all

http_port  3128  

web服务器的配置:

启动httpd服务,建立测试网页(不配网关)

所有客户端上配置:(谁想通过代理访问服务器,谁配置

192.168.4.8和192.168.4.9可以,如下结果: 

[root@localhost 桌面]# yum -y install firefox

[root@localhost 桌面]# firefox &    打开火狐浏览器,如下图:

点击 编辑——首选项后,如下图:

点击高级——网络——设置后,如下图:

指定好代理服务器都IP地址(192.168.4.5)和端口号(3128)后,点击确定——关闭,即可访问web服务器,但其他都客户端不可以访问。

web服务器上查看日志: (发现是代理服务器在访问自己,实际是客户端在访问自己

[root@localhost 桌面]# cat /var/log/httpd/access_log

172.10.10.1 - - [20/Mar/2016:23:01:49 +0800] "GET /favicon.ico HTTP/1.1" 404 287 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"

三、Squid反向代理(

拓扑1向代理1)

实现结果:让企业内主机全部主机都通过squid代理访问到外部的服务器网页,企业内部主机输入地址是Squid代理的IP:172.10.10.1。在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己

Squid代理配置:

1)配置双网卡IP

2)开启路由转发  vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)修改配置文件:vim  /etc/squid/squid.conf

http_access  allow  all

http_port  80  vhost  (反向代理设置)

cache_peer   172.10.10.6  parent  80  0  originserver

web服务器的配置:

启动httpd服务,建立测试网页(需配网关:172.10.10.1)

Squid反向代理(

拓扑2向代理2)

实现结果:让企业内主机部分主机都通过squid代理访问到外部的服务器网页,企业内部主机输入地址是Squid代理的IP:172.10.10.1。在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(让192.168.4.8和192.168.4.9可以,其他的都不可以)

Squid代理配置:

1)配置双网卡IP

2)开启路由转发  vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)修改配置文件:vim  /etc/squid/squid.conf

acl  suibian  src  192.168.4.8

acl  suibian  src  192.168.4.9

http_access  allow  suibian   (其他的allow删掉,否则会有影响)

http_access  deny  all

http_port  80  vhost  (反向代理设置)

cache_peer   172.10.10.6  parent  80  0  originserver

web服务器的配置:

启动httpd服务,建立测试网页(需配网关:172.10.10.1)

Squid反向代理(

拓扑3向代理3)

实现结果:让企业内主机部分主机都通过squid代理访问到外部的多个服务器仅仅其中一个服务器网页,企业内部主机输入地址是Squid代理的IP:172.10.10.1。在web服务器的日志中/var/log/httpd/access_log中是squid代理在访问自己而实际上是企业内网主机在访问自己(让192.168.4.8和192.168.4.9可以,其他的都不可以)

Squid代理配置:

1)配置双网卡IP

2)开启路由转发 vim /etc/sysctl.conf           net.ipv4.ip_forward = 1

3)安装squid,yum  -y  install  squid

4)修改配置文件:vim  /etc/squid/squid.conf

acl  suibian  src  192.168.4.8

acl  suibian  src  192.168.4.9

http_access  allow  suibian   (其他的allow删掉,否则会有影响)

http_access  deny  all

http_port  80  vhost  (反向代理设置)

cache_peer   172.10.10.6  parent  80  0  originserver

cache_peer   172.10.10.66  parent  80  0  originserver   此两个:谁写在上面,就调度到哪个上面,且不会轮询到下面的机器

web服务器的配置:

启动httpd服务,建立测试网页(需配网关:172.10.10.1)

如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!对于nginx和squid反向代理实验,我可以为您提供一些基本的指导和概念说明。 首先,nginx和squid都是常用的反向代理服务器软件。它们的主要功能是接收客户端请求,并将这些请求转发到后端的服务器上,然后将响应返回给客户端。这种反向代理的架构可以提供负载均衡、缓存、安全性等优势。 在进行实验之前,您需要确保已经安装了nginx和squid。安装方法可以参考官方文档或者相关的教程。 对于nginx,您可以通过修改nginx配置文件来配置反向代理。主要的配置项是`proxy_pass`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如负载均衡策略、缓存设置等。 下面是一个简单的nginx反向代理配置示例: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; } } ``` 在上面的示例中,所有请求都会被转发到`http://backend_server`这个后端服务器上。 对于squid,您可以通过编辑squid配置文件来配置反向代理。主要的配置项是`cache_peer`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如缓存设置、访问控制等。 下面是一个简单的squid反向代理配置示例: ``` http_port 3128 http_access allow all cache_peer backend_server parent 80 0 no-query originserver acl our_sites dstdomain example.com http_access allow our_sites cache_peer_access backend_server allow our_sites ``` 在上面的示例中,squid监听在3128端口,所有请求都会被转发到`backend_server`这个后端服务器上。同时,针对example.com这个域名的请求会被允许访问。 请注意,以上只是简单的示例配置,实际的配置可能还涉及到其他方面的设置,如安全性、性能优化等。 希望以上信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维实战课程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值