如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频
1.正向代理、透明代理(也属于正向代理)和反向代理概念
正向代理:代理内部主机上网,共享上网,缓存内网用户上网行为等功能,(客户端需要设置代理服务器的ip和代理端口)
透明代理(也属正向代理):和正向代理功能完全一致,(客户端不需要设置代理服务器的ip和代理端口,对用户透明的)
反向代理:从外部网络访问内部服务器,与正向代理相反,主要用于网站架构的缓存加速或CDN。
注意:正向代理是代理客户端,也称翻墙。
反向代理是代理服务器,也可做缓存加速和CDN,squid反向代理和nginx的反向代理都可做CDN
参考解释:
CDN是内容分发网络(Content Delivery Network)。是为了解决用户请求响应过慢的问题。比如用户在黑龙江,服务器在海南,用户请求的速度可能受距离、带宽的影响。CDN将几台机器分发在全国各地,用户发出的请求会选择就近的CDN服务器进行处理。CDN简单的来说就是存储一些静态文件的一台或多台服务器,通过复制,缓存主服务器等方式,将文件保存其中。
反向代理一般就是指Nginx,是在主服务器之外加一层代理服务器,用户的请求会发送到代理服务器上,由代理服务器请求真正的服务器,获得到结果后再将结果返回给用户。反向代理主要的用处就是会加一层安全保障,所有的请求不是直接请求主服务器,而是代理服务器,这样就保护了主服务器不受侵害。第二个用处就是代理服务器会有缓存,命中缓存的请求可以不用再请
2.三种代理类型:
正向代理(不透明)、透明代理(也是正向代理)和反向代理。
- 正向代理和反向代理参考地址:
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站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频