Nginx正向、反向代理区别

1、什么是正向和反向代理?

我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

正向代理的用途:

* 可以到达远方,不可描述
* 可以做缓存,加速访问资源
* 对客户端访问授权,上网进行认证
* 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理隐藏了真实的服务端,当我们请求一个网站的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,我们不知道,也不需要知道,我们只需要知道反向代理服务器是谁就好了,反向代理服务器会帮我们把请求转发到真实的服务器那里去。

反向代理的用途:

* 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
* 负载均衡,通过反向代理服务器来优化网站的负载

总结

正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端。
反向代理即是服务端代理,代理服务端,客户端不知道实际提供服务的服务端。

2、两种代理的nginx配置方式

正向代理

#代理服务器设置
server {
    # 端口
    listen       8080;
    # 地址
    server_name  localhost;
    # DNS解析地址
    resolver 8.8.8.8;
    # 代理参数
    location / {
        # $http_host就是我们要访问的主机名
        # $request_uri就是我们后面所加的参数
        proxy_pass http://$http_host$request_uri;
    }
}

反向代理到一组服务

upstream backend{
        server 172.16.0.10:8080;
        server 172.16.0.20:8080;
        server 172.16.0.30:8080;
    }

server {
       resolver 8.8.8.8;
       resolver 114.114.114.114;
       listen 8080;
       access_log /home/lin/proxy.access.log;
       error_log /home/lin/proxy.error.log;
       location / {
           proxy_pass http://backend;
           proxy_set_header Host $http_host;
           proxy_ssl_session_reuse off;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#记录客户端地址,多级代理服务期地址
           proxy_hide_header X-Forwarded-For;#不记录客户端地址
       }
   }

猜你喜欢

转载自blog.csdn.net/haoaiqian/article/details/109787741