Apache和nginx的反向代理行为差异(缓冲)

Apache和nginx在反向代理的缓冲行为上有差异。

以下是用原生中文重新表达的选项:

– Nginx是一个Web服务器软件。

    • デフォルトでリクエストはバッファリングされる.

 

    • 転送先へのリクエストは,nginxがリクエストを受信し終えた後.

 

    ただし,nginx 1.7.11以降はproxy_request_bufferingオプションで無効化できる.

Apache (阿帕奇)

    • リクエストはバッファリングされない.

 

    転送先へのリクエストは,Apacheのリクエスト受信途中から.

使用缓冲的优点和缺点

优势

    • 低速なクライアントの影響を受けない.

unicornのworkerがリクエスト受信待ちで占有… ということがなく,workerが効率良く捌けるようになる.
転送先Webアプリケーションのセッション数(unicornのworker数)が限られる場合は効果的.

不够完美

    • メモリやディスクを消費する.

リクエストが数百MBを超えたり,塵も積もればの大量リクエストがある場合は,ディスクI/Oがボトルネックになり得ます.
client_body_buffer_sizeでメモリへのバッファサイズをチューニングできますが,消費はします.

転送先へのリクエスト送信がわずかに遅れる.

バッファリングなしで随時送信するよりは,わずかに遅くなります.わずかにですが.


虽然只是上传几百KB的数据,但是经常在慢速的MVNO网络上使用(被使用)的Web应用程序…为了利用缓冲的好处,我们经常采用Debian+nginx+unicorn+Rails的架构。

参考文献

    • Module ngx_http_proxy_module

 

    過去に実験したデータ(どっかいった…)
广告
将在 10 秒后关闭
bannerAds