nginx 反向代理

一、什么是方向代理

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载

二、反向代理配置

server {
    listen 80;
    server_name aotu.jd.com;
    root /var/www/;
    location /o2blog_wx/ {
        # 反向代理我们通过proxy_pass字段来设置
        # 也就是当访问http://aotu.jd.com/o2blog_wx的时候经过Nginx反向代理到服务器上的http://127.0.0.1:3000
        # 同时由于解析到服务器上的时候o2blog_wx这个字段都要处理
        # 所以通过rewrite字段来进行正则匹配替换
        # 也就是http://aotu.jd.com/o2blog_wx/hello经过Nginx解析到服务器变成http://127.0.0.1:3000/hello
        proxy_pass http://127.0.0.1:3000;
        rewrite ^/o2blog_wx/(.*) /$1 break;
    }
}

三、负载均衡

http {

    upstream backend {
        server 127.0.0.1:3000;
        server 127.0.0.1:3001;
    }

    ...
    server {
        listen      9000;
        server_name localhost;
        
        location / {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            
            proxy_pass backend; 
        }
    }
}

 

















posted @ 2019-06-09 12:24  shangyueyue  阅读(128)  评论(0编辑  收藏  举报