次のようにhttpリクエストのリバースプロキシとしてNGINXを設定しました。
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;
}
}
ベストアンサー1
これSSHプロトコルHTTPに基づいていないため、通常のプロキシを介してプロキシできません。proxy_pass
~のngx_http_proxy_module
しかし最近からnginx1.9.0(2016-04-26の1.10.0で安定したリリース)、nginxはサポートされています。TCPストリームプロキシ、つまり十分に新しいnginxバージョンがある場合、これは実際にSSH接続をプロキシするために使用できることを意味します(ただし、X-Real-IP
HTTPに基づいていないため、プロキシ接続にこのようなものを追加することはできません)。 。
詳細と例については、以下を確認してください。