将 Nginx 配置为任何域的反向代理

将 Nginx 配置为任何域的反向代理

目前我有一个设置,其中 dnsmasq 用作 DNS 服务器,它将 DNS 查找解析到我自己的服务器 IP 地址。其中 SNIPORXY 正在监听端口 80 和 443。sniproxy 的配置是

listen 80 {
          proto http
          table proxy_sni
          access_log {
                     filename /var/log/sniproxy/http_access.log
                      priority notice
            }
}
listen 443 {
          proto tls
          table proxy_sni
          access_log {
                      filename /var/log/sniproxy/https_access.log
                       priority notice
           }
}
table proxy_sni {
            .* *
               }
 resolver {
          mode ipv4_only
  }

我使用 ProxyChains 来运行 sniproxy。实际上,将 sniproxy 在端口 80 或 442 上收到的任何请求转发到 proxychains 配置中设置的代理。

    proxychains sniproxy -c /etc/sniproxy.conf -f

proxychains 的配置如下

   dynamic_chain
   chain_len=1
   tcp_read_time_out 32000
   tcp_connect_time_out 11000
   [ProxyList]
   http   192.168.67.78   1080  username password
   socks5 192.168.67.67   1234  username password

并添加以下 iptable 规则

    iptables -t nat -I OUTPUT -p tcp -m owner --uid-owner $(whoami) -j RETURN
    iptables -t nat -A OUTPUT -p tcp -m multiport --dports 80,443 -j REDIRECT

一切顺利,按预期工作。

我想复制相同的设置,使用 HAPORXY 或 NGINX ,希望消除使用 sniporxy 和 proxychains 。但无法让它工作。

Nginx 配置

    stream {

     
         upstream backend_d {
            # Round-robin load balancing
            server 11.21.4.216:12323;
            server 18.21.4.151:12323;
            }
         server {
            listen 80;
            proxy_protocol on;
            proxy_pass backend_d;
            proxy_ssl_server_name on;
            #proxy_set_header Authorization "Basic ZG5eRZG5z0sDmRuc2sRucw==";
            #proxy_pass_header Authorization;
            }

          server {
            listen 443;
            proxy_protocol on; 
            ##proxy_pass $name;
            ssl_preread on;
            proxy_pass backend_d;
            proxy_ssl_server_name on;
            ##proxy_set_header Authorization "Basic ZG5eRZG5z0sDmRuc2sRucw==";
            ##proxy_pass_header Authorization;
            }
    }

是否可能仅使用 dnsmasq 和 nginx 实现相同的功能,基本上是一个反向代理 (nginx),它将请求转发到另一个代理 (需要基本身份验证的 socks/http 代理)。无需在 nginx 上终止 SSL。任何相关帮助都将不胜感激。谢谢

相关内容