大家好,欢迎来到停止重构的频道。

本期我们讨论网络代理

在往期《大型网站 安全性介绍过,出于网络安全考虑,一般大型网站需要网络区域隔离,以防止攻击者直接操控服务器

网站系统应用数据库都会放在这个网络安全区域里。这样的话就会产生代理问题

外网请求需要进来,第三方服务调用需要出去。本期我们将详细讨论代理问题我们按这样的顺序讨论 :​

1、  反向代理外网请求进来 

2、  正向代理请求外网服务 

反向代理接收外网请求

外网请求需要经过一网才能反向代理进网络隔离区,网关可以负载均衡服务、也可以是Nginx等服务软件

 

如果是Nginx反向代理的配置是这样的。

 

这里需要说明的是,如果外网请求https,那么其实不需要整个网站系统各个服务都是https,只需要保证网关那一层配置https即可系统内部调用仍然使用http

如果是使用负载均衡等云服务,则https只需要在负载均衡服务配置即可网站系统本身的调用还是http,因为网站系统内部使用https通信没有好处,反而会降低性能

 

正向代理,调用外网服务

一些时候网站系统需要调用第三方服务,超大型的网站系统会分离几个网络隔离区,容灾备份需要夸网络隔离备份

以上场景,网站系统都不得不调用网络隔离区以外服务器,此时需要经过同一代理服务器正向代理目标服务器

 

正向代理可以使用Nginx作为服务软件,正向代理一般有两种方式,一种是7层代理,另一种是4层代理。

网络分层模型一般按OSI模型分为7层。

第7层为应用,就是常听到的HTTP、HTTPS、RTMP、SMTP等协议

第4层为传输层,即TCP、UDP等基础协议

对应的7层代理和4层代理就是对应的这两个网络分层

如果是使用7层代理Nginx配置是这样的。

这个配置跟以上反向代理配置的方式是一致的,且可以通过匹配url关键字代理到多个目标服务器

网站系统调用外网服务需要将IP/端口指向代理服务器,当然,我们推荐使用域名调用,通过修改服务器host文件即可把调用指向代理服务器

当然,除了修改IP指向,也可以设置http_proxyhttps_proxy参数设置代理,但这种方式不太推荐,因为这样管理起来不太好。

另一种是4层代理 Nginx配置是这样的,但是需要一个端口对应一个目标服务器,网站系统调用外网服务也需要将IP/端口指向代理服务器

而且由于4层代理是基于TCP/UDP这些基础协议的,所以HTTP、RTMP这些基于TCP的请求都可以共用一个代理端口

 

当然4层代理比7层代理配置更加复杂,需要一个端口对应一个目标服务器

但是我们推荐4层代理

一是性能和稳定性都会相对高一点点,另外是更好管理,由于一个端口对应一个目标外网服务,所以如果出现一些突发问题,可以在代理服务器直接关闭对应端口即可立刻断开指定外网服务,且不影响其他外网服务的调用。​

总结

本期聊了网站系统的代理方案,这其实是往期网站系统安全性中的其中一个内容,本期作了更详细的讨论

原文地址:https://blog.csdn.net/Daniel_Leung/article/details/130467891

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26696.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注