2017-03-04 6 views
2

私はGoで書かれた簡単なHTTPサーバーを持っています。nginxでGo HTTPサーバーを実行するには

開発中これは正常に動作しますが、このサーバーは一度に100個の要求を処理する必要があります。これはnginxのような適切なWebサーバーが必要です。

どうすればnginxの後ろに置くことができますか?

+0

は、Googleしてみましたか?はいの場合は、何を試してみましたか? –

+0

シンプルで単純な解決策が見つかりませんでしたので、ここで紹介しました。 –

+1

stdlibには、一度に100リクエスト以上処理できる "適切なWebサーバー"が含まれています。 – Danilo

答えて

10

シンプルなリバースプロキシ設定が必要だと思います。

あなたの行くのhttpサーバがhttp://example.com:8080でリッスンしているとしましょう:

server { 
    listen 80; 
    server_name example.com; 

    location/{ 
     proxy_pass http://example.com:8080; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_http_version 1.1; 
     proxy_set_header Connection ""; 
    } 
} 
+0

ありがとう、私はreq.remoteAddrをやっているときに1つのこと127.0.0.1正しいIPを取得しています。 それを解決する方法はありますか? –

+0

'X-Real-IP'ヘッダを探します。そこにremoteaddrを埋め込みます。 –

+1

キープアライブを有効にするには、 'proxy_http_version 1.1;'と 'proxy_set_header Connection" ";'を追加することをお勧めします。それ以外の場合は、リクエストごとに新しい接続を開きます。参照:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive – snap

関連する問題