Nginx Config:別のポートへのフロントエンドリバースプロキシ


22

80ではなくポート5010でリクエストを処理する小さなWebサーバーがあります。

ポート80でリクエストを受信するフロントエンドプロキシとしてnginxを使用し、それらのリクエストをポート5010で処理できるようにします。

nginxを正常にインストールしました。UbuntuKarmicでスムーズに実行されます。

しかし、デフォルトのnginx.confを再構成しようとする試みは成功していません。

サーバーディレクティブにポート5010のlisten引数を含めてみました。

proxy_passディレクティブも試しました。

必要な変更に関する提案、またはポート転送のみを行うために設定する必要があるディレクティブ。

回答:


22

私はnginxがポート5010と80でリッスンしているサーバーではないと仮定しています、正しいですか?他の何かが5010でリッスンしていて、そのサーバーへのnginxプロキシが必要ですか?

もしそうなら、ここで私が成功した過去に使った素敵なサンプル設定があります:

server {
        listen       80;
        server_name  <YOUR_HOSTNAME>;
        location / {
            proxy_pass         http://127.0.0.1:5010/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }
}

私はあなたが探しているものを達成するはずだと信じています。がんばろう!


これはmacOS brew nginxでは機能しません。あなたは、そうでない場合は、http {}ブロックの周囲のサーバーを追加する必要があります:nginxのは:[EMERG]「サーバー」ディレクティブは、ここで許可されていません
muenalan

13

かなりミニマリスト-プロキシ設定はデフォルトのままにしてありますが、必要に応じて調整することをお勧めします。

# NGINX configuration

# System configuration ##################
worker_processes  3;
events {
    worker_connections  1024;
}
user nobody;

# Web configuration #####################
http {
    server {
        listen 80 default;
        location / {
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   Host             $host;

            proxy_pass http://127.0.0.1:5010/;

        }
    }
}

2
タイラー-あなたの最小限の解決策は良いです。それが私が欲しかったことです。あなたは私ができれば、まだ新しいserverfaultの上の点を与えるだろう
テッドKarmel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.