正向代理和反向代理以及nginx的简介

简介: 今天来看一个简单的知识点,正向代理和反向代理。相信这两个名词大家都听过。那么什么是正向代理?什么是反向代理呢?带着这个问题让我们开始今天的学习之旅。

前言

今天来看一个简单的知识点,正向代理和反向代理。相信这两个名词大家都听过。那么什么是正向代理?什么是反向代理呢?带着这个问题让我们开始今天的学习之旅。

正向代理

首先让我们想一想,在日常生活中,我们有哪些场景下会使用到正向代理呢?一个场景就是当我们要访问的网站不能访问,我们就可以通过代理服务器来访问。这里的代理服务器就是一个正向代理服务器。我们自己的电脑作为客户端,首先会向代理服务器发送一个请求,并且指定目标服务器,之后代理服务器向目标服务器发送请求,并且将获得的内容返回给客户端。正向代理下客户端必须做一些特殊的设置。说白了,正向代理服务器就是帮客户端去请求目标服务器。如下图:正向代理中,proxy和client同属于一个LAN,对server透明。

反向代理

反向代理的过程与正向代理恰恰相反,正向代理的话客户端需要做一些设置,设置代理服务器。而反向代理的话,对客户端而言,代理服务器就好像是目标服务器,客户端向反向代理服务器发送请求,接着反向代理服务器判断请求走向何处,并将请求转交给客户端,反向代理服务器作用在服务端,它在服务器端接收客户端的请求,然后再将请求分发给具体的服务器进行处理。然后再将服务器的相应结果反馈给客户端。一个很典型的应用就是我们通过Nginx作为代理服务器。如下图所示:反向代理中,proxy和server同属于一个LAN,对client透明,实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把前者那种代理方式叫做正向代理,

后者叫做反向代理。

正向代理和反向代理的区别

正向代理

1.正向代理需要客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的ip地址,还有程序的端口。

2.正向代理需要你主动设置代理服务器IP或者域名进行访问,由设置的服务器IP或者域名去获取访问内容并返回。

3..正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见。

反向代理

1.反向代理不需要客户端做任何设置,直接访问服务器真实IP或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。

2.反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。

3.反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。

Nginx的简介

Nginx最初是作为一个Web服务器创建的,用于解决C10K(就是单击在一秒之内连接客户端的数据为10k,即1万)问题。作为一个Web服务器,它可以以惊人的速度为您的数据服务。但Nginx不仅仅是一个web服务器,你还可以作为一个反向代理进行网站的负载均衡。它的设计不像传统的服务器那样使用线程处理请求,而是一个更加高级的机制-事件驱动机制,就是基于IO多路复用技术实现的。

Nginx的负载均衡示意图

我们通过Nginx做反向代理服务器,实现了Tomcat服务器的负载均衡。

总结

本文简单介绍了,正向代理和反向代理,以及他们的区别。我们只需要记住一点,正向代理作用在客户端,需要客户端做设置,由正向代理服务器代理客户端的请求。而反向代理的话是作用在服务端的,不需要客户端做设置,客户端请求发向代理器,由反向代理服务器来分发请求。


相关文章
|
9天前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
14 2
|
3天前
|
Java 应用服务中间件 PHP
杨老师课堂之Nginx学习之反向代理
杨老师课堂之Nginx学习之反向代理
10 0
|
1月前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
61 3
|
1月前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
23天前
|
缓存 算法 应用服务中间件
nginx 反向代理 与缓存功能
nginx 反向代理 与缓存功能
|
23天前
|
应用服务中间件 nginx
nginx指定location 实现反向代理 动静分离
nginx指定location 实现反向代理 动静分离
|
1月前
|
域名解析 缓存 负载均衡
Nginx正向代理域名的配置
Nginx正向代理域名的配置
161 8
|
1月前
|
负载均衡 JavaScript 前端开发
Nginx实现反向代理、负责均衡、动静分离
Nginx实现反向代理、负责均衡、动静分离
|
1月前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
1月前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
43 0