Nginx
如何將 NGINX 配置為不同埠號的反向代理?
I have NGINX configured like this as a reverse proxy for http requests: server { listen 80; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://203.0.113.1:3000; } }
我還想代理 ssh(埠 22)請求。我可以將另一個這樣的伺服器塊添加到同一個配置文件中嗎:
server { listen 22; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://203.0.113.1:22; } }
這樣最終的結果是這樣的:
server { listen 80; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://203.0.113.1:3000; } } server { listen 22; server_name 203.0.113.2; proxy_set_header X-Real-IP $remote_addr; # pass on real client IP location / { proxy_pass http://203.0.113.1:22; } }
TIA,
奧萊
ssh 協議不是基於 HTTP的
proxy_pass
,因此不能通過ngx_http_proxy_module
然而,最近,從nginx 1.9.0(2016 年 4 月 26 日與 1.10.0 穩定發布)開始,nginx 確實獲得了對TCP 流代理的支持,這意味著如果你有足夠新的 nginx 版本,實際上,您可以使用它來代理 ssh 連接(但是,請注意,您無法向
X-Real-IP
代理連接添加任何類似的東西,因為這不是基於 HTTP)。有關更多資訊和範例,請查看: