【Nginx】第十五节 配置正向代理

版权声明:咔咔 来自https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/86286981

author:咔咔

wechat:fangkangfk

我们来做做一个测试,我们准备俩台服务器,A服务器放置我们想要的资源,B服务器配置代理

为了避免浏览器直接访问A服务器可以获取资源,我们先需要对A服务器做一个访问控制,在之前我们提过访问控制

这个ip地址为B服务器的地址,这里使用的的remoto_addr(如果是多层代理需要使用x_forwarded_for这个在访问控制那一节写到),这个判断就是如果访问的ip地址不是118.126.106.11就会返回403错误

location / {
        if ( $remote_addr !~* "^118\.126\.106\.11") {
            return 403;
        }
        root   /opt/app/demo/html;
        index  index.html index.htm;
    }

这个时候我们的客户端就不会直接获取到A服务器的资源了。然后我们需要配置B服务器的nginx

server {
    listen       80;
    server_name  localhost nginx.tangll.cn;

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

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

resolver为DNS解析,这里填写的IP为Google提供的免费DNS服务器的IP地址
proxy_pass配置代理转发
至此便是配置了B服务器所有访问根一级的请求全部都代理转发对应到$http_host$request_uri去了,$http_host就是我们要访问的主机名,$request_uri就是我们后面所加的参数。
简单的说至此就是相当于配置好了我们请求了B服务器,B服务器再去请求我们所请求的地址。

下来我们需要配置代理,在代理里边配置B服务器的地址

 这个时候可以查看一下ip地址,我们的客户端ip就是B服务器的IP地址了,就说明我们代理已经配置成功了

以上就是正向代理的一个场景演示,这个过程中可以知道,我们客户端是想要A的资源,但是A的资源只有B能拿到,便让B代理去帮助我们访问A的资源。整个过程A只知道B拿了他的资源,并不知道客户端拿到。

猜你喜欢

转载自blog.csdn.net/fangkang7/article/details/86286981