簡體   English   中英

Nginx作為TCP轉發代理

[英]Nginx as TCP forward proxy

我知道我可以這樣使用:

stream {
    upstream ssh {
        server X.X.X.X:22;
    }

    server {
             listen 2222;
             proxy_pass    ssh;
    }
}

代理將傳入的流量從端口2222傳遞到另一個IP的端口22。

直截了當。 但是,是否有一種方法可以創建一個將最終目標的主機名和端口作為參數接受的動態代理?

可以這樣使用:

proxy_hostname:8080?destination_hostname=example.com&destination_port=1111

ngx_stream_core_module不接受url參數。 Nginx可以用作動態代理還是僅用於靜態隧道?

我問這個問題是因為我需要一種方法來隱藏觸發php mysql請求的機器的IP。

mysqli_connect($hostname, ...)

現在我不能僅為整個機器指定php腳本的代理。

也許用一個小腳本和fcgiwrap

https://www.nginx.com/resources/wiki/start/topics/examples/fcgiwrap/

fcgiwrap調用bash腳本,您可以在其中將URI轉換為要調用的程序(mysql),並將輸出作為Web內容返回到nginx。

您還可以更改Nginx的配置並重新加載服務。 這樣,您可以“動態”打開/轉發端口。 如果將其公開發布,則是相當不安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM