為業務機配置nginx正向代理訪問外網


需求

業務某節點無外網訪問權限(直接訪問外網會被對方追蹤到IP地址,存在安全隱患),但自身需要訪問一些公共節點,

先決條件

開發會提供訪問的http地址(http://47.241.233.90:9100),和服務名稱rdb
最后組合成的域名是server_rdb_proxy.com,這里rdb就是服務名稱

方案

1、業務機開放所有外網訪問權限,出公網走NAT。VPC再配置AMZ的防火牆
缺點是vpc下所有機器都會受防火牆影響,規則不夠細化,並且每次需要運維手動操作

2、Nginx(正向)代理
業務機器指定hostsnginx_ip server_rdb_proxy.com
只有配置了nginx正向代理的conf,業務機才有訪問的權限,這樣的話業務機數據不會對外有泄露的風險,也就是說此時業務機只能訪問如下地址的服務

這里proxy_pass不要寫upstream,直接轉發到對應域名或者地址即可

server {
      listen 80 ;
      server_name server_rdb_proxy.com;
       location  /  {
        proxy_next_upstream  http_502 http_504 http_404  error  timeout invalid_header;
        proxy_pass  http://47.241.233.90:9100;
        proxy_set_header  Host $host;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_set_header 'Access-Control-Allow-Origin' "$http_origin";
        proxy_set_header X-forwarded-for  $remote_addr;
        proxy_set_header x-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header   Proxy "";

  }
        access_log  /tmp/t1.log  main;
        error_log  /dev/null; 
}

最終實現業務機器想訪問哪個外部節點必須添加本地hosts和代理nginx配置才可以實現訪問
也可以使用squid來實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM