前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >正向代理与反向代理

正向代理与反向代理

作者头像
GeekLiHua
发布2025-01-21 16:13:49
发布2025-01-21 16:13:49
9700
代码可运行
举报
文章被收录于专栏:Java
运行总次数:0
代码可运行

正向代理与反向代理

简介

正向代理(Forward Proxy)
简介

定义:正向代理是位于客户端和目标服务器之间的服务器,客户端通过代理服务器来访问目标服务器。

例子:假设你是一个学生,想要访问学校图书馆的电子资源,但是这些资源只能在学校内部网络访问。这时,你可以使用学校提供的正向代理服务器。当你在宿舍访问图书馆资源时,你的请求首先发送到代理服务器,代理服务器再将请求转发到图书馆的服务器,获取资源后再返回给你。

特点:

客户端需要知道代理服务器的地址和端口。 代理服务器可以隐藏客户端的真实IP地址。 可以用于访问受限资源或提高访问速度。

应用场景

公司可能会使用正向代理来控制员工访问外部网站,同时提供内容过滤和访问日志。 用户可能会使用VPN作为正向代理,以绕过地理位置限制,访问某些地区特有的在线内容,也就是我需要用正向代理就是因为我的ip对于那个服务器受限制,然后我需要另一个中间服务器,来隐藏我的ip,然后把我的请求发送到我想要访问的那个服务器

反向代理(Reverse Proxy)
简介

定义:反向代理是位于服务器和客户端之间的服务器,客户端通过反向代理服务器来访问后端的多个服务器。

例子:假设你访问一个大型电商平台,该平台后端有多个服务器处理不同的业务,如商品展示、订单处理、用户管理等。当你发起一个请求时,反向代理服务器会根据请求的内容将请求转发到后端的相应服务器,并将服务器的响应返回给你。

特点:

客户端通常不知道后端服务器的地址和端口。 反向代理服务器可以作为负载均衡器,将请求分发到多个后端服务器。 可以提高安全性,隐藏后端服务器的详细信息。

应用场景

Nginx配置反向代理:

配置文件中定义server块,使用listen指令监听端口。 使用location块定义请求的处理规则,proxy_pass指令指定后端服务器的地址。

代码语言:javascript
代码运行次数:0
复制
http {
    upstream myapp1 {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}
  • upstream 定义了一个服务器组 myapp1,它包含了两个后端服务器 backend1.example.com 和 backend2.example.com。 server 块定义了一个监听在80端口的虚拟服务器。 location / 定义了一个处理所有请求的 location 块。 proxy_pass 指令将请求转发到 myapp1 服务器组。 proxy_set_header 指令用于设置传递给后端服务器的 HTTP 头。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正向代理与反向代理
    • 简介
      • 正向代理(Forward Proxy)
      • 反向代理(Reverse Proxy)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档