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; 
        }
    }
}
相關文章
相關標籤/搜索