Ruby on Railsの展開、たくさんの添付ファイルがある「薄い」サーバー

StackOverflow https://stackoverflow.com/questions/2399772

  •  25-09-2019
  •  | 
  •  

質問

多くのPDFは、各PDFファイルのブロブフィールドとしてMySQL内に保存されています。平均ファイルサイズはそれぞれ500Kです。

Railsアプリは、ファイルのダウンロードとして以下のバイナリデータをストリーミングします。ユーザーがダウンロードリンクをクリックします。

5つのPDFを同時にダウンロードする最大5人のユーザーがいると仮定しますが、どのような展開セットアップパラメーターを知っておくべきですか?たとえば、薄い場合:

薄いスタート - サーバー3

上記の例には、-Servers 3が十分に良い(または5以上が必要)かどうか?

2番目の質問は、「薄い」有能な解決策かどうかです。

ありがとう!

役に立ちましたか?

解決

まず、データベースにファイルを保存する必要がないと思います。より良い場所は、ファイルシステム、またはS3のようなクラウドストレージにあります。添付ファイルプラグインのようなものを使用する場合 ペーパークリップ これは非常に簡単にセットアップできます。

ただし、ファイルをデータベースに保存すると仮定します。

現在のセットアップの問題は、ファイルを送信するときに、クライアントがデータをダウンロードしている間、シンインスタンスがブロックしていることです。これは、3つの薄いインスタンスとPDFをダウンロードする3人がいる場合、サイトはリクエストに応答しないことを意味します。

ありがたいことに、この問題の解決策があります。 x-sendfile ヘッダ。これが機能する方法は、ThinのインスタンスがファイルをWebサーバーに送信します。たとえば、Nginxなど、ファイルは直接ファイルを提供します。

Nginxを使用してこれをセットアップする方法に関するStackoverFlowに関する素晴らしい投稿を次に示します。

どのWebサーバーを使用していますか?

他のヒント

ダウンロード専用の1つまたは2つの薄い薄いものを定義できます。 WebServerでは、RailsアプリケーションとダウンロードURLで別のプロキシディストリビューションを作成できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top