Nginx正向代理与反向代理的简单例子

3 篇文章 0 订阅
2 篇文章 0 订阅

代理简介

正向代理

正向代理代理的是client。

例如:有些网址我们在本地无法直接访问,需要在浏览器里面配置一个proxy,这个proxy就是正向代理。

server只和proxy交互,并不知道client的存在。

反向代理

反向代理代理的是server。

例如:server位于局域网之内,在外网无法直接访问,需要访问网关,然后通过网关来向内网转发request,这个proxy就是反向代理。

client只和proxy交互,并不知道server的存在。

Nginx正向代理

假如现在有2个HTTP server AB ,以及1个client机器 C

  • A的IP地址:192.168.1.8
  • B的IP地址:192.168.1.58

A的配置如下:

server {
        listen          6692;
        server_name     localhost;
        location / {
                if ( $remote_addr !~* ^192\.168\.1\.58$) {
                        return 403;
                }
                root /Users/kaiding/temp/temp0703;
                index index.html;
        }
}

可见,只能从 192.168.1.58 (即server B)来访问server A。

  • 从B访问:

在这里插入图片描述

  • 从C访问:

在这里插入图片描述要想让C能够访问server A,我们需要在server B上开启一个proxy server,然后让C通过B来代理其HTTP请求。

在server B上配置正向代理如下:

server {
    listen       6691;
    server_name  localhost;

    resolver 8.8.8.8;
    location / {
        proxy_pass http://$http_host$request_uri;
    }
}

在C的浏览器里面配置HTTP代理如下:

在这里插入图片描述

现在,C就可以访问到A了:

在这里插入图片描述

Nginx反向代理

(和刚才同样的场景)

假如现在有2个HTTP server AB ,以及1个client机器 C

  • A的IP地址:192.168.1.8
  • B的IP地址:192.168.1.58

A的配置如下:

server {
        listen          6692;
        server_name     localhost;
        location / {
                if ( $remote_addr !~* ^192\.168\.1\.58$) {
                        return 403;
                }
                root /Users/kaiding/temp/temp0703;
                index index.html;
        }
}

可见,只能从 192.168.1.58 (即server B)来访问server A。

要想让C能够访问server A,我们需要在server B上开启一个proxy server来代理A,然后让C通过访问B来达到访问A的效果。

在server B上配置反向代理如下:

upstream myserverA {
        server 192.168.1.8:6692;
}

server
{
        listen          6693;
        server_name     localhost;
        location / {
                proxy_pass          http://myserverA;
        }
}

现在,C就可以通过访问B,来达到访问A的效果了:

在这里插入图片描述
注意:C的浏览器里面URL是B的地址,也就是说,C并不知道A的存在。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值