nginx 反向代理

1、什么是方向代理安全

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道本身访问的是一个代理。由于客户端不须要任何配置就能够访问。服务器

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

反向代理的做用:
(1)保证内网的安全,一般将反向代理做为公网访问地址,Web服务器是内网
(2)负载均衡,经过反向代理服务器来优化网站的负载分布式

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;
    }
}

3、负载均衡

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; 
        }
    }
}
相关文章
相关标签/搜索