DUICUO

FastDFS を使用したファイル管理システムの設定 (詳細なチュートリアル)

[[374919]]

FastDFSの紹介

オープンソースチャイナ: https://www.oschina.net/question/tag/fastdfsgitHub

オープンソースアドレス: https://github.com/happyfish100

参考: http://blog.chinaunix.net/uid-20196318-id-4058561.html

1.1 はじめに

FastDFSは、タオバオ開発プラットフォーム部門のシニアアーキテクトであるYu Qing氏によって開発されたオープンソースの高性能分散ファイルシステムです。分散ファイルシステムとして、ファイルの管理を行い、主な機能はファイルの保存、同期、ファイルアクセス(ファイルのアップロードとダウンロード)です。主に大規模なデータ保存の問題を解決し、特に小中サイズのファイル(推奨範囲:4KB < ファイルサイズ < 500MB)を使用するオンラインサービスに適しています。

FastDFS システムには、トラッカー サーバー、ストレージ サーバー、クライアントの 3 つの役割があります。

  • トラッカーサーバー:FastDFSのコーディネーターとして、バランス調整の役割を担い、すべてのストレージサーバーとグループの管理を担います。各ストレージサーバーは起動後にトラッカーに接続し、グループ情報などの情報をトラッカーに通知し、定期的なハートビートを維持します。トラッカーは、ストレージサーバーのハートビート情報に基づいて、グループ==>[ストレージサーバーリスト]のマッピングテーブルを構築します。
  • ストレージサーバー:主に容量管理とバックアップサービスを提供するストレージサーバーです。グループ(ボリューム)単位で構成されます。グループには複数のストレージマシンが含まれ、データは相互にバックアップされます。ストレージ容量は、グループ内で最も容量の小さいストレージマシンに基づいて割り当てられます。そのため、ストレージ容量の無駄を避けるため、グループ内の複数のストレージマシンは可能な限り同じ構成にすることをお勧めします。
  • クライアント:ビジネスリクエストの発信元であるクライアントは、TCP/IPプロトコルを使用した専用インターフェースを介してトラッカーサーバーまたはストレージノードとやり取りします。これは、プロジェクトがデプロイされているサーバーです。

1.2 FastDFSアーキテクチャ図


1.3 FastDFSストレージ戦略

大容量をサポートするために、ストレージノード(サーバー)はボリューム(またはグループ)アプローチを使用して構成されます。ストレージシステムは1つ以上のボリュームで構成され、各ボリューム内のファイルは互いに独立しています。すべてのボリュームの合計ファイル容量は、ストレージシステム全体の合計ファイル容量と等しくなります。ボリュームは1つ以上のストレージサーバーで構成できます。ボリューム内のストレージサーバー上のすべてのファイルは同一であり、ボリューム内の複数のストレージサーバーによって冗長性と負荷分散が実現されます。

ボリュームにサーバーを追加すると、既存のファイルはシステムによって自動的に同期されます。同期が完了すると、システムは新しく追加されたサーバーを自動的にオンラインに切り替え、サービスを提供します。ストレージ容量が不足している場合や不足しそうな場合は、ボリュームを動的に追加できます。1台または複数台のサーバーを追加し、それらを新しいボリュームとして構成するだけで、ストレージシステムの容量を拡張できます。

1.4 FastDFSアップロードプロセス

FastDFS は、アップロード、ダウンロード、追加、削除などの基本的なファイル アクセス インターフェイスをユーザーに提供し、これらはクライアント ライブラリとしてユーザーに提供されます。


ストレージサーバーは、定期的にストレージ情報をトラッカーサーバーに送信します。トラッカーサーバークラスターに複数のトラッカーサーバーが存在する場合、各トラッカー間の関係は対等であるため、クライアントはアップロード時に任意のトラッカーを選択できます。

トラッカーはクライアントからファイルのアップロード要求を受信すると、ファイルを保存するグループを割り当てます。グループを選択した後、トラッカーはそのグループ内のどのストレージサーバーをクライアントに割り当てるかを決定します。ストレージサーバーが割り当てられると、クライアントはストレージサーバーに書き込み要求を送信し、ストレージサーバーはファイルのデータ保存ディレクトリを割り当てます。次に、トラッカーはファイルにファイルIDを割り当て、この情報に基づいてファイル名を生成してからファイルを保存します。(下図を参照)


1.5 FastDFSでのファイル同期

ファイルへの書き込み時、クライアントはグループ内のいずれかのストレージサーバーにファイルが書き込まれた時点で、書き込みが成功したとみなします。ストレージサーバーがファイルの書き込みを完了すると、バックグラウンドスレッドによって、同じグループ内の他のストレージサーバーにファイルが同期されます。

各ストレージデバイスはファイルを書き込むと、バイナリログも書き込みます。バイナリログにはファイルデータは含まれず、ファイル名などのメタデータのみが記録されます。このバイナリログはバックグラウンド同期に使用されます。ストレージデバイスは、グループ内の他のストレージデバイスとの同期の進行状況を記録します。これにより、再起動後に前回の進行状況から同期を続行できます。進行状況はタイムスタンプ形式で記録されるため、クラスター内のすべてのサーバーのクロックが同期されていることを確認することをお勧めします。

ストレージの同期の進行状況はメタデータの一部としてトラッカーに報告され、トラッカーは読み取るストレージを選択するときに同期の進行状況を参照として使用します。

例えば、グループに3台のストレージサーバーA、B、Cがあり、AがCにT1の進捗で同期し(T1より前に書き込まれたファイルはすでにBに同期済み)、BがCにT2のタイムスタンプで同期したとします(T2 > T1)。トラッカーはこの同期進捗情報を受信すると、それを整理し、最も小さい値をCの同期タイムスタンプとして使用します。この例では、T1がCの同期タイムスタンプです(T1より前に書き込まれたすべてのデータがCに同期済みであることを意味します)。同様に、上記のルールに従って、トラッカーはAとBの同期タイムスタンプを生成します。

1.6 FastDFS ファイルダウンロード

クライアントがファイルを正常にアップロードすると、ストレージによって生成されたファイル名がクライアントに送信されます。クライアントはこのファイル名を使用してファイルにアクセスできます。

ファイルのアップロードと同様に、ファイルをダウンロードする際にも、クライアントは任意のトラッカーサーバーを選択できます。トラッカーが別のトラッカーにダウンロード要求を送信する際、ファイル名情報を含める必要があります。トラッカーはファイル名を解析し、ファイルのグループ、サイズ、作成時刻などの情報を抽出し、読み取り要求を処理するストレージサーバーを選択します。

FastDFS環境のインストール

2.1 準備

動作環境: CentOS 6.4

ダウンロードしたファイルはすべてパッケージ フォルダーに配置して一元管理します。

2.2 libfastcommonをダウンロードしてインストールする

1. libfastcommonをダウンロードする

  1. # wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz

2. ファイルを解凍する

  1. # tar -zxvf V1.0.38.tar.gz
  2.  
  3. # cd libfastcommon-1.0.38

3. コンパイルしてインストールする

  1. # ./make.sh
  2.  
  3. # ./make.sh インストール

4. コンパイルが成功すると、libfastcommon.so が /usr/lib64 にインストールされます。32ビットシステムでは /usr/lib/ に、64ビットシステムでは /usr/lib64/ にインストールされます。

5. シンボリックリンクを作成します。FastDFSメインプログラムによって設定されるlibディレクトリは/usr/local/libなので、シンボリックリンクを作成する必要があります。

  1. # ln -s /usr/lib64/libfastcommon.so /usr/ローカル/lib/libfastcommon.so
  2.  
  3. # ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
  4.  
  5. # ln -s /usr/lib64/libfdfsclient.so /usr/ローカル/lib/libfdfsclient.so
  6.  
  7. # ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

2.3 FastDFSをダウンロードしてインストールする

1. FastDFSをダウンロードする

  1. # wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz

2. 解凍する

  1. # tar -zxvf V5.11.tar.gz
  2.  
  3. # cd fastdfs-5.11

3. コンパイルしてインストールする

  1. # ./make.sh
  2.  
  3. # ./make.sh インストール

4. デフォルトのインストールディレクトリ

サービススクリプト: cd /etc/init.d ディレクトリ

  1. /等/
  2. init.d/fdfs_storaged
  3.  
  4. /etc/init.d/fdfs_tracker

設定ファイル: /etc/fdfs に移動します。.sample 拡張子のファイルが 4 つあります(自動生成された Fdfs テンプレート設定ファイル)。

  1. /等/
  2. fdfs/client.conf.サンプル
  3.  
  4. /etc/fdfs/storage.conf.サンプル
  5.  
  6. /etc/fdfs/storage_ids.conf.サンプル
  7.  
  8. /etc/fdfs/tracker.conf.サンプル

コマンドスクリプト:

  1. fdfs_appender_test
  2.  
  3. fdfs_appender_test1
  4.  
  5. fdfs_append_file
  6.  
  7. fdfs_crc32
  8.  
  9. fdfs_delete_file
  10.  
  11. fdfs_ダウンロードファイル
  12.  
  13. fdfs_file_info
  14.  
  15. fdfs_モニター
  16.  
  17. fdfs_storaged
  18.  
  19. fdfs_テスト
  20.  
  21. fdfs_test1
  22.  
  23. fdfs_trackerd
  24.  
  25. fdfs_upload_appender
  26.  
  27. fdfs_アップロードファイル
  28.  
  29. 停止.sh
  30.  
  31. 再起動.sh

実行可能コマンドも表示できます: ls -la /usr/bin/fdfs*

  1. -rwxr-xr-x。 1 ルート root 317480 10 月 9 日 09:48 /usr/bin/fdfs_appender_test
  2.  
  3. -rwxr-xr-x。 1 ルート root 317256 10 月 9 日 09:48 /usr/bin/fdfs_appender_test1
  4.  
  5. -rwxr-xr-x。 1 ルート root 304104 10 月 9 日 09:48 /usr/bin/fdfs_append_file
  6.  
  7. -rwxr-xr-x。 1 ルート root 303808 10 月 9 日 09:48 /usr/bin/fdfs_crc32
  8.  
  9. -rwxr-xr-x。 1 ルート root 304144 10 月 9 日 09:48 /usr/bin/fdfs_delete_file
  10.  
  11. -rwxr-xr-x。 1 ルート root 304904 10 月 9 日 09:48 /usr/bin/fdfs_download_file
  12.  
  13. -rwxr-xr-x。 1 ルート root 304496 10 月 9 日 09:48 /usr/bin/fdfs_file_info
  14.  
  15. -rwxr-xr-x。 1 ルート root 322400 10 月 9 日 09:48 /usr/bin/fdfs_monitor
  16.  
  17. -rwxr-xr-x。 1 ルート root 1111520 10 月 9 日 09:48 /usr/bin/fdfs_storated
  18.  
  19. -rwxr-xr-x。 1 ルート root 327384 10 月 9 日 09:48 /usr/bin/fdfs_test
  20.  
  21. -rwxr-xr-x。 1 ルート root 326592 10 月 9 日 09:48 /usr/bin/fdfs_test1
  22.  
  23. -rwxr-xr-x。 1 ルート root 453848 10 月 9 日 09:48 /usr/bin/fdfs_trackerd
  24.  
  25. -rwxr-xr-x。 1 ルート root 305096 10 月 9 日 09:48 /usr/bin/fdfs_upload_appender
  26.  
  27. -rwxr-xr-x。 1 ルート root 306120 10 月 9 日 09:48 /usr/bin/fdfs_upload_file

5. FastDFS サービス スクリプトでシンボリック リンクを設定する: FastDFS サービス スクリプトで設定される bin ディレクトリは /usr/local/bin ですが、実際のコマンドは /usr/bin/ 以下にインストールされます。

これは、/usr/bin から /usr/local/bin へのシンボリック リンクを作成することによって実現できます。

  1. # ln -s /usr/bin/fdfs_trackerd /usr/ local /bin
  2.  
  3. # ln -s /usr/bin/fdfs_storaged /usr/ローカル/bin
  4.  
  5. # ln -s /usr/bin/stop.sh /usr/ローカル/bin
  6.  
  7. # ln -s /usr/bin/restart.sh /usr/ローカル/bin

2.4 トラッカーサービスの設定

1. /etc/fdfs ディレクトリに移動し、cp コマンドを使用して tracker.conf.sample をコピーし、名前を tracker.con (.sample サフィックスを削除) に変更して公式ファイルにします。

  1. # cd /etc/fdfs/
  2.  
  3. # cp トラッカー.conf.sample トラッカー.conf
  4.  
  5. # vi トラッカー.conf

2. tracker.conf を編集する: `vi tracker.conf` を使用して tracker.conf を編集し、関連するパラメータを変更します (`==basepath==` と `==http.serverport==` のみを変更する必要があります)。

  1. # サービスが提供されるポート、デフォルト: 22122
  2.  
  3. ポート=
  4. 22122
  5.  
  6.  
  7.  
  8. # トラッカーにデータとログを保存するためのルートパス。ルートディレクトリが存在する必要があります。サブディレクトリは自動的に作成されます。
  9.  
  10. ベースパス=
  11. /家/
  12. lyy/fastdfs
  13.  
  14.  
  15.  
  16.  
  17.  
  18. # HTTP ポートは nginx ポートと同じである必要があります。
  19.  
  20. http.server_port=
  21. 80

3. トラッカーの基本データ ディレクトリ (base_path に対応するディレクトリ) を作成します。

  1. mkdir -p /home/lyy/fastdfs

4. ポート22122を開く

  1. # vi /etc/sysconfig/iptables
  2.  
  3.  
  4.  
  5. 次のポート行を追加します。
  6.  
  7. -A 入力 -m 状態--state 新規 -m tcp -p tcp --dport  
  8. 22122
  9. -j 受け入れる
  10.  
  11.  
  12.  
  13. ファイアウォールを再起動します。
  14.  
  15. # サービスiptablesを再起動

5. トラッカーを起動します(開始、停止、再起動をサポートします)。

  1. これを使って
  2.  
  3. # /etc/init.d/fdfs_trackerd を起動します
  4.  
  5.  
  6.  
  7. 上記でシンボリック リンクが作成されている場合は、この方法を使用してアプリケーションを起動することもできます。
  8.  
  9. # サービス fdfs_trackerd を開始

起動が成功すると、/home/lyy/fastdfs (設定されたベースパス) の下に、data と logs の 2 つのディレクトリが作成されます。


6. 起動ログを確認します。指定されたベースパス(/home/lyy/fastdfs)に移動し、logsディレクトリにあるtracker.logファイルを確認します。

7. ポートの状態を確認する

  1. netstat -apn|grep fdfs

ポート 22122 がリッスンされている場合、次の図に示すように、Tracker サービスが正常にインストールされています。

トラッカーを停止するコマンド: service fdfs_trackerd stop

8. 起動時に Tracker が自動的に起動するように設定します。

  1. # chkconfig fdfs_trackerdをオンにする 
  2.  
  3.  
  4.  
  5. または:
  6.  
  7. # vi /etc/rc.d/rc.local  
  8.  
  9. 設定を追加します:
  10.  
  11. /etc/init.d/fdfs_trackerd の開始

2.5 ストレージサービスを構成する

1. /etc/fdfs ディレクトリに移動します。cp コマンドを使用して storage.conf.sample をコピーし、名前を storage.conf に変更します(拡張子 .sample を削除)。これで最終的なファイルが作成されます。

  1. # cd /etc/fdfs/
  2.  
  3. # cp storage.conf.sample ストレージ.conf
  4.  
  5. # vi ストレージ.conf

2. storage.conf を編集し、関連するパラメータ (==basepath==、==storepath0==、==trackerserver==、==http.serverport==) を変更します。

  1. # 設定ファイルが有効かどうか。false場合は有効です。
  2.  
  3. 無効=
  4. 間違い 
  5.  
  6.  
  7.  
  8. # このストレージ サーバーが存在するグループ (ボリューム) を指定します。
  9.  
  10. グループ名=グループ1
  11.  
  12.  
  13.  
  14. # ストレージサーバーのサービスポート、ストレージのデフォルトは23000
  15.  
  16. ポート=
  17. 23000
  18.  
  19.  
  20.  
  21. # ハートビート間隔(秒単位)(これはトラッカーサーバーにハートビートをアクティブに送信することを指します)
  22.  
  23. ハートビート間隔=
  24. 30
  25.  
  26.  
  27.  
  28. # ストレージ パスの数は store_paths の数と一致する必要があります。
  29.  
  30. ストアパス数=
  31. 1
  32.  
  33.  
  34.  
  35. # データやログを保存するためのルートパスを事前に作成しておく必要があります。
  36.  
  37. ベースパス=
  38. /家/
  39. lyy/ストレージ/fastdfs
  40.  
  41.  
  42.  
  43. # 空の場合はbase_pathを使用する
  44.  
  45. ストアパス0=
  46. /家/
  47. lyy/ストレージ/ファイル
  48.  
  49.  
  50.  
  51. #このパラメータが N のみの場合 (例: 256)、ストレージ サーバーは最初の実行時にファイルを保存するために store_path の下に N * N 個のサブディレクトリを自動的に作成します。
  52.  
  53. パスあたりのサブディレクトリ数=
  54. 256
  55.  
  56.  
  57.  
  58. # このストレージサービスがリッスンするトラッカーの IP アドレスとポートを設定します
  59.  
  60. #トラッカーサーバーが複数ある場合は、トラッカーサーバーごとに 1 行記述します。
  61.  
  62. トラッカーサーバー=
  63. 192.168
  64. 50.198
  65. :
  66. 22122
  67.  
  68.  
  69.  
  70. # システム同期を許可する時間帯(デフォルトは終日)。この設定は通常、ピーク時の同期による問題を回避するために使用されます。
  71.  
  72. 同期開始時間=
  73. 00
  74. :
  75. 00
  76.  
  77. 同期終了時間=
  78. 23
  79. :
  80. 59
  81.  
  82.  
  83.  
  84. #アクセスポート
  85.  
  86. http.server_port=
  87. 80

3. base_path ディレクトリに対応する、ストレージ ベース データ ディレクトリを作成します。

  1. # mkdir -p /home/lyy/storage/fastdfs
  2.  
  3.  
  4.  
  5. # これは設定されたstore_path0パスです
  6.  
  7. # mkdir -p /home/lyy/storage/file

4. ストレージを開始する

  1. これを使って
  2.  
  3. # /etc/init.d/fdfs_storaged を開始
  4.  
  5.  
  6.  
  7. この方法も使用できます。これは私がここで使用している方法です。
  8.  
  9. # サービス fdfs_storaged の開始

5. ストレージの起動ログを確認します。指定されたbase_path(/home/lyy/storage/fastdfs)に移動し、logsディレクトリにアクセスします。そこに保存されているstorage.logファイルを確認します。


6. ポート情報を確認します: netstat -apn|grep fdfs

ストレージを停止するには: `service fdfs_storaged stop` ストレージを再起動するには: `service fdfs_storaged restart`

7. モニターを使用して、ストレージが正常にバインドされているかどうか、およびストレージとトラッカーが正常に通信しているかどうかを確認します。

  1. /usr/
  2. bin/fdfs_monitor /etc/fdfs/storage.conf

8. 起動時にストレージが自動的に起動するように設定

  1. # chkconfig fdfs_storagedオン 
  2.  
  3.  
  4.  
  5. または:
  6.  
  7. # vi /etc/rc.d/rc.local  
  8.  
  9. 設定を追加します:
  10.  
  11. /etc/init.d/fdfs_storaged の開始

9. TrackerとStorageが正常に起動すると、Storage Serverの情報を記録するために、`basepath`(`/home/lyy/storage/file`)の下に`data`ディレクトリと`logs`ディレクトリが作成されます。`storepath0`の下にN*N個のサブディレクトリが作成されます。


3. Nginxをインストールする

1. Nginx インストール パッケージをダウンロードします。

  1. # wget http://nginx.org/download/nginx-1.15.2.tar.gz

2. nginxを解凍します。

  1. # tar -zxvf nginx-1.12.1.tar.gz

3. nginxディレクトリに入る

  1. # nginx-1.15.2をインストールします

4. 依存ライブラリをインストールする

  1. # yumアップデート 
  2.  
  3. # yum で libpcre3 libpcre3-dev openssl libssl-dev libperl-dev をインストールします

5. nginx を設定し、fastdfs-nginx-module をロードします。

  1. # ./configure

6. nginxをコンパイルしてインストールする

  1. # 作る
  2.  
  3. # インストールする

7. nginxのインストールパスを確認します: whereis nginx

8. 開始と停止:

  1. # cd /usr/ローカル/nginx/sbin/
  2.  
  3. # ./nginx
  4.  
  5.  
  6.  
  7. その他のコマンド
  8.  
  9. # ./nginx -s 停止
  10.  
  11. # ./nginx -s 終了
  12.  
  13. # ./nginx -s リロード

9. スタートアッププログラムを設定する

  1. # vi /etc/rc.local  
  2.  
  3.  
  4.  
  5. 行を追加します:
  6.  
  7. /usr/
  8. 地元 
  9. /nginx/sbin/nginx
  10.  
  11.  
  12.  
  13. # 実行権限を設定する
  14.  
  15. # chmod 755 rc.local  

10. nginxのバージョンを確認する

  1. /usr/
  2. 地元 
  3. /nginx/sbin/nginx -V

11. ファイアウォールで Nginx を有効にします。

ポート80

  1. # vim /etc/sysconfig/iptables
  2.  
  3.  
  4.  
  5. 次のポート行を追加します。
  6.  
  7. -A 入力 -m 状態--state 新規 -m tcp -p tcp --dport  
  8. 80
  9. -j 受け入れる
  10.  
  11.  
  12.  
  13. ファイアウォールを再起動します。
  14.  
  15. # サービスiptablesを再起動

12. ブラウザからnginxにアクセスする

nginx が正常に起動しているかどうかを確認するには、IP アドレス(私の場合は 192.168.50.198)を入力してください。デフォルトのポートは 80 です。下の画像が表示されれば、nginx は正常に起動しています。

4つのファイルのアップロードテスト

4.1 nginx.confファイルを変更する

  1. vi /usr/local/nginx/conf/nginx.conf
  2.  
  3.  
  4.  
  5. /group1/M00を/home/lyy/storage/file/dataにマッピングするには、次の行を追加します。
  6.  
  7. 場所 /group1/M00 {
  8.  
  9. エイリアス /home/lyy/storage/file/data;
  10.  
  11. }
  12.  
  13.  
  14.  
  15.  
  16.  
  17. # nginxを再起動します
  18.  
  19. # /usr/ローカル/nginx/sbin/nginx -s リロード

4.2 トラッカーサーバーのクライアント設定ファイル

1. クライアント構成を変更する

  1. # /etc/fdfs をコピー
  2.  
  3. # cp client.conf.sample クライアント.conf
  4.  
  5. # vi クライアント.conf

次の設定を変更します

  1. # クライアントのデータとログのディレクトリ
  2.  
  3. ベースパス=
  4. /家/
  5. lyy/クライアント
  6.  
  7.  
  8.  
  9. # トラッカーポート
  10.  
  11. トラッカーサーバー=
  12. 192.168
  13. 50.198
  14. :
  15. 22122

フォルダを作成

  1. mkdir -p /home/lyy/client

4.3 アップロードテスト

Linux 内で次のコマンドを実行して、イメージ 1.jpg をアップロードします。

  1. /usr/
  2. bin/fdfs_upload_file /etc/fdfs/client.conf
  3. 1.jpg

正常に完了すると、ファイルID番号が返されます: group1/M00/00/00/wKgyxl2dfNWAG9cOAAOUD-69J7A524.jpg


  1. グループ名: group1
  2.  
  3. ディスク: M00
  4.  
  5. 目次:
  6. 00
  7. /
  8. 00
  9.  
  10. ファイル名: wKgyxl2dfNWAG9cOAAOUD-
  11. 69J7A524.jpg

4.4 wget とブラウザ経由で正常にアクセスしました。

ブラウザ


wgetメソッド


5. fastdfs-nginx-moduleをインストールして設定する

5.1 fastdfs-nginx-module モジュールの説明

FastDFS は Tracker サーバーを使用してストレージ サーバーにファイルを保存しますが、同じグループ内のストレージ サーバー間でファイルのコピーが必要になり、同期の遅延が発生する可能性があります。

Tracker サーバーがファイルを 192.168.50.196 にアップロードしたと仮定すると、アップロードが成功した後、ファイル ID がクライアントに返されます。

この時点で、FastDFSストレージクラスターメカニズムは、このファイルを同じストレージグループ192.168.50.197に同期します。ファイルのコピーが完了する前に、クライアントがこのファイルIDを使用して192.168.50.197上のファイルを取得しようとすると、ファイルアクセスエラーが発生します。

fastdfs-nginx-module は、ファイル リンクをソース サーバーにリダイレクトしてファイルを取得し、クライアント側でのコピー遅延によって発生するファイル アクセス エラーを回避できます。

5.2 fastdfs-nginx-moduleパッケージをインストールする

1. fastdfs-nginx-module インストール パッケージをダウンロードします。

  1. # インストールパッケージをダウンロードする
  2.  
  3. https://www.wget.com/
  4. //github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
  5.  
  6.  
  7.  
  8. # インストールパッケージを解凍する
  9.  
  10. tar -zxvf V1。
  11. 20.タール
  12. .gz

2. Nginxを設定する

  1. # まずnginxサービスを停止します
  2.  
  3. # /usr/ローカル/nginx/sbin/nginx -s 停止
  4.  
  5. nginxディレクトリに入る
  6.  
  7. # nginx-1.15.2をインストールします
  8.  
  9. # モジュールを追加
  10.  
  11. # ./configure --add-module=/usr/local/package/fastdfs-nginx-module-1.20/src  
  12.  
  13. 再コンパイルしてインストールする
  14.  
  15. # メイク && インストール

  1. エラーが発生する場合があります:
  2.  
  3. コンパイルに失敗しました。
  4.  
  5. make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] エラー1
  6.  
  7. make[1]: ディレクトリ「 /usr/local/package/nginx-1.15.2 を残す
  8.  
  9. make: *** [ビルド] エラー 2
  10.  
  11.  
  12.  
  13. 解決:
  14.  
  15. `fastdfs-nginx-module-1.20/src/config` ファイルを変更し、`./configure` から再度開始します。
  16.  
  17. ngx_module_incs= "/usr/include/fastdfs /usr/include/fastcommon/"  
  18.  
  19. CORE_INCS = "$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"  

3. nginxのバージョンを確認する

  1. /usr/
  2. 地元 
  3. /nginx/sbin/nginx -V

下の画像に示すように、構成は成功しました。


5.3 Nginxとfastdfs-nginx-moduleを設定する

1. mod-fastdfs.conf を設定し、/etc/fdfs ディレクトリにコピーします。

  1. # cd /usr/ローカル/package/fastdfs-nginx-module-1.20/src/
  2.  
  3.  
  4.  
  5. # cp mod_fastdfs.conf /etc/fdfs/

2. mod-fastdfs.conf を変更する

  1. # vi /etc/fdfs/mod_fastdfs.conf

次の構成を変更します。

  1. # 接続タイムアウト
  2.  
  3. 接続タイムアウト=
  4. 10
  5.  
  6.  
  7.  
  8. # トラッカーサーバーアドレス
  9.  
  10. トラッカーサーバー=
  11. 192.168
  12. 50.198
  13. :
  14. 22122
  15.  
  16.  
  17.  
  18. ## URLにグループ名が含まれているかどうかはtrueに設定 
  19.  
  20. url_have_group_name =
  21. 真実 
  22.  
  23.  
  24.  
  25. ストレージ設定で設定された `store_path0` パスは、 `storage.conf` 内のパスと一致する必要があります。
  26.  
  27. ストアパス0=
  28. /家/
  29. lyy/ストレージ/ファイル

3. FastDFS の解凍ディレクトリからファイル (anti-steal.jpg、http.conf、mime.types) を /etc/fdfs ディレクトリにコピーします。

  1. # cd /usr/ローカル/package/fastdfs-5.11/conf/
  2.  
  3. # cp anti-steal.jpg http.conf mime.types /etc/fdfs/

4. nginx.conf を変更して nginx を設定します。

  1. vi /usr/
  2. 地元 
  3. /nginx/conf/nginx.conf

fastdfs-nginx モジュールをポート 80 に追加し、以前の構成をコメント アウトします。


5. nginxを起動する

  1. /usr/
  2. 地元 
  3. /nginx/sbin/nginx

6. wget とブラウザ経由で正常にアクセスしました。

ブラウザ

wgetメソッド

構造図(オンラインで見つけた画像、オリジナルではありません):


よく使われる6つのFastDFSテストコマンド

6.1 - ファイルのアップロード

  1. #注文:
  2.  
  3. /usr/bin/fdfs_upload_file
  4. <設定ファイル>
  5. <ローカルファイル名>
  6.  
  7. #ケーススタディ:
  8.  
  9. /usr/bin/fdfs_upload_file /etc/fdfs/client.conf
  10. 1.jpg
  11.  
  12. 正常に完了すると、ファイル ID 番号が返されます。
  13.  
  14. グループ1/M00/
  15. 00
  16. /
  17. 00
  18. /wKgyxl2dfNWAG9cOAAOUD-
  19. 69J7A524.jpg

6.2 - ファイルのダウンロード

  1. 注文:
  2.  
  3. /usr/bin/fdfs_download_file
  4. <設定ファイル>
  5. <ファイルID>
  6. [ローカルファイル名]
  7.  
  8. ケーススタディ:
  9.  
  10. /usr/bin/fdfs_download_file /etc/fdfs/client.conf グループ1/M00/00/00/wKgyxl2dfNWAG9cOAAOUD-69J7A524.jpg

結果を表示:

6.3 - ファイルの削除

  1. 注文:
  2.  
  3. /usr/bin/fdfs_delete_file
  4. <設定ファイル>
  5. <ファイルID>
  6.  
  7. 例:
  8.  
  9. /usr/bin/fdfs_delete_file /etc/fdfs/client.conf グループ1/M00/00/00/wKgyxl2dfNWAG9cOAAOUD-69J7A524.jpg

結果を返します:

私は穆小農。終わりなき真実の探求を恐れない。一歩一歩前進する喜びがある。さあ、共に進み続けよう!