分散ファイルサーバーを実装するためのNginxとFastDFS

分散ファイルサーバーを実装するためのNginxとFastDFS

FastDFS は、ファイルを管理するオープンソースの軽量分散ファイル システムです。機能には、ファイルストレージ、ファイル同期、ファイルアクセス(ファイルのアップロード、ファイルのダウンロード)などがあり、大容量ストレージと負荷分散の問題を解決します。特に、フォトアルバム Web サイトやビデオ Web サイトなど、ファイルをキャリアとして使用するオンライン サービスに適しています。

FastDFS は、冗長バックアップ、負荷分散、線形拡張などのメカニズムを十分に考慮し、高可用性や高パフォーマンスなどの指標に重点を置いて、インターネット向けにカスタマイズされています。 FastDFS を使用すると、ファイルのアップロード、ダウンロード、その他のサービスを提供する高性能ファイル サーバー クラスターを簡単に構築できます。

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

libfastcommon は、基本環境である FastDFS および FastDHT から抽出された共通 C 関数ライブラリであり、インストールできます。

1.1 ダウンロード:

  1. https://github.com/happyfish100/libfastcommon/archive/V1.0.7.ta​​r.gz を取得します。

1.2 解凍:

  1. tar -zxvf V1.0.7.ta​​r.gz

1.3 インストール:

  1. libfastcommon-1.0.7 をインストールします
  2.  
  3. ./make.sh
  4.  
  5. ./make.sh インストール

1.4 ファイルをコピーする:

FastDFS の lib 構成ファイル パスの問題を解決します。

  1. cp/usr/lib64/libfastcommon.so/usr/ローカル/lib/libfastcommon.so  
  2. cp/usr/lib64/libfastcommon.so/usr/lib/libfastcommon.so

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

2.1 ダウンロード:

  1. https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz をダウンロードしてください

2.2 減圧:

  1. tar -zxvf V5.05.tar.gz

2.3 インストール:

  1. cd fastdfs-5.05
  2. ./make.sh
  3. ./make.sh インストール

インストールが完了すると、デフォルトの設定ファイル ディレクトリは /etc/fdfs/ になり、デフォルトのコマンドは /usr/bin/ に配置され、fdfs_ で始まります。

3. FastDFSを構成する

まず、設定ファイルを /etc/fdfs ディレクトリにコピーします。

  1. cd/home/fantj/download/fastdfs-5.05/conf
  2.  
  3. cp*/etc/fdfs/
  4.  
  5. 次のように:
  6.  
  7. [root@s168 conf]#cd /etc/fdfs/
  8.  
  9. [root@s168 fdfs]#ls
  10.  
  11. anti-steal.jpg client.conf.sample mime.types storage.conf.sample tracker.conf
  12.  
  13. client.conf http.conf storage.conf storage_ids.conf tracker.conf.sample

3.1. tracker.conf の設定

FastDFSトラッカー

次の構成を変更します。

  1. #トラッカーデータとログディレクトリのアドレス(ルートディレクトリが存在する必要があり、サブディレクトリは自動的に作成されます)  
  2. ベースパス=/fastdfs/トラッカー 
  3. ポート=22122

3.1.1 ディレクトリを作成します。

mkdir-p /fastdfs/tracker3.1.2 開始/停止:

fdfs_trackerd/etc/fdfs/tracker.conf の start/stop は、デフォルトで /etc/fdfs の下の設定ファイルを使用します。特定の構成がある場合は、最後にパラメータを追加できます。ファイアウォールがある場合は、ファイアウォールのルールを開きます。

3.1.3 スタートアップを設定する:

  1. # systemctl で fdfs_trackerd を有効にする
  2.  
  3.  
  4. または:
  5.  
  6. # vim /etc/rc.d/rc.local  
  7.  
  8. 設定を追加します:
  9.  
  10. /etc/init.d/fdfs_trackerd 開始

3.1.4 トラッカーサーバーのディレクトリとファイル構造:

Tracker サービスが正常に開始されると、base_path の下に data と logs の 2 つのディレクトリが作成されます。ディレクトリ構造は次のとおりです。

  1. ${ベースパス}
  2.  
  3. |__データ
  4.  
  5. | |__storage_groups.dat: ストレージグループ情報
  6.  
  7. | |__storage_servers.dat: ストレージサーバーリスト
  8.  
  9. |__ログ
  10.  
  11. | |__trackerd.log: トラッカーサーバーのログファイル

3.2.ストレージの構成

以下は基本的な構成です。さらに詳細なニーズがある場合は、すべての構成を確認してください。

  1. group_name=fantj #グループ名
  2.  
  3. base_path=/fastdfs/storage #ログディレクトリ
  4.  
  5. store_path0=/fastdfs/storage #ストレージディレクトリ
  6.  
  7. tracker_server=192.168.27.168:22122 #トラッカーノード
  8.  
  9. http.server_port=8888 #ポート

3.2.1 起動

  1. こうやって始められます
  2.  
  3. fdfs_storaged/etc/fdfs/storage.conf 開始
  4.  
  5. この方法を使用して、後でこの方法を使用することもできます。
  6.  
  7. # サービス fdfs_storaged 開始

3.2.2 プロセスの確認

netstat-unltp|grep fdfs3.2.3 ストレージの起動

  1. # systemctl で fdfs_storaged を有効にする 
  2.  
  3. または:
  4.  
  5. # vim /etc/rc.d/rc.local  
  6.  
  7. 設定を追加します:
  8.  
  9. /etc/init.d/fdfs_storaged 開始

3.2.4 ストレージディレクトリ

ストレージが正常に起動すると、ストレージ サーバーの情報を記録するために、base_path の下にデータ ディレクトリとログ ディレクトリが作成されます。

store_path0 ディレクトリの下に、N*N 個のサブディレクトリが作成されます。

  1. [root@s168 データ]# pwd
  2.  
  3. /fastdfs/ストレージ/データ
  4.  
  5. [root@s168 データ]# ls
  6.  
  7. 00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70 77 7E 85 8C 93 9A A1 A8 AF B6 BD C4 CB D2 D9 E0 E7 EE F5 FC
  8.  
  9. 01 08 0F 16 1D 24 2B 32 39 40 47 4E 55 5C 63 6A 71 78 7F 86 8D 94 9B A2 A9 B0 B7 BE C5 CC D3 DA E1 E8 EF F6 FD
  10.  
  11. 02 09 10 17 1E 25 2C 33 3A 41 48 4F 56 5D 64 6B 72 79 80 87 8E 95 9C A3 AA B1 B8 BF C6 CD D4 DB E2 E9 F0 F7 fdfs_storated.pid
  12.  
  13. 03 0A 11 18 1F 26 2D 34 3B 42 49 50 57 5E 65 6C 73 7A 81 88 8F 96 9D A4 AB B2 B9 C0 C7 CE D5 DC E3 EA F1 F8 FE
  14.  
  15. 04 0B 12 19 20 27 2E 35 3C 43 4A 51 58 5F 66 6D 74 7B 82 89 90 97 9E A5 AC B3 BA C1 C8 CF D6 DD E4 EB F2 F9 FF
  16.  
  17. 05 0C 13 1A 21 28 2F 36 3D 44 4B 52 59 60 67 6E 75 7C 83 8A 91 98 9F A6 AD B4 BB C2 C9 D0 D7 DE E5 EC F3 FA storage_stat.dat
  18.  
  19. 06 0D 14 1B 22 29 30 37 3E 45 4C 53 5A 61 68 6F 76 7D 84 8B 92 99 A0 A7 AE B5 BC C3 CA D1 D8 DF E6 ED F4 FB同期

3.3.クライアントを構成する

  1. vimクライアント.conf
  2.  
  3. tracker_server=192.168.27.168:22122 #トラッカーノード
  4.  
  5. base_path=/fastdfs/client #ログパス

3.4.ローカル画像アップロードテスト

  1. [root@s168 fdfs]#fdfs_upload_file/etc/fdfs/client.conf/home/test.png
  2. ファントj/M00/00/00/wKgbqFu7T7iAJh7lAABDYbhAMC4812.png
  3. または:
  4. [root@s168 fdfs]#fdfs_test/etc/fdfs/client.conf/home/test.png
  5.  
  6. ThisisFastDFSクライアントテストプログラムv5.05
  7. Copyright(C)2008,HappyFish/YuQing
  8. FastDFSはGNUGeneral条件に従ってのみコピーできます
  9.  
  10. PublicLicenseV3 は、FastDFSsource キットに含まれています。
  11.  
  12. FastDFSホームページhttp://www.csource.org/をご覧ください。
  13.  
  14. 詳細についてはこちらをご覧ください。
  15.  
  16. [2018-5-0820:41:15]DEBUG-base_path=/fastdfs/client、connect_timeout=30、network_timeout=60、tracker_server_count=1、anti_steal_token=0、anti_steal_secret_key length=0、use_connection_pool=0、g_connection_pool_max_idle_time=3600s、use_storage_id=0、ストレージ サーバー ID:0
  17. 無効な操作:/home/test.png

4. nginxをインストールする

nginx のインストールについては以前に記事を書いたので、ここでは繰り返しません。まだインストールしていない場合は、以下をクリックしてください:

クリックして私の記事をご覧ください: nginx のインストール

5. FastDFS 構成 Nginx モジュール

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

5.1 ダウンロードとインストール

  1. https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip を取得します。
  2.  
  3. unzip5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
  4.  
  5. mv fastdfs-nginx-モジュール-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1/fastdfs-nginx-モジュール

5.2 Nginxの設定

  1. ngix -s 停止
  2.  
  3. nginx-1.12.1をインストールします
  4.  
  5. #モジュールを追加
  6.  
  7. ./configure --add-module=../fastdfs-nginx-module/src  
  8.  
  9. (yum で nginx をインストールした場合、まだ解決策は見つかっていません。現在の方法は、nginx-V で nginx のバージョンを確認し、同じバージョンの nginx をダウンロードすることです。
  10.  
  11. その後、/etc/nginx の下にあるデータ全体をバックアップし、make&make install が完了した後に復元します)
  12.  
  13. #再コンパイルしてインストール
  14.  
  15. 作る
  16.  
  17. インストールする
  18.  
  19. #設定ファイルをコピーする
  20.  
  21. [root@s168 src]#pwd
  22.  
  23. /home/fantj/download/fastdfs-nginx-module/src
  24.  
  25. [root@s168 src]#cp mod_fastdfs.conf/etc/fdfs/

/etc/fdfs/mod_fastdfs.conf ファイルを設定する

  1. #/etc/fdfs/mod_fastdfs.conf ファイルを設定する
  2.  
  3. base_path=/fastdfs/tmp #ログディレクトリ
  4.  
  5. store_path0=/fastdfs/ストレージ
  6.  
  7. トラッカーサーバー=192.168.27.168:22122
  8.  
  9. #グループ 名前 ローカルストレージサーバー
  10.  
  11. group_name=fantj #ストレージグループ名と1対1に対応
  12.  
  13. url_have_group_name= true # URL で group_name を有効にする

nginxの設定

  1. # nginx を設定する
  2.  
  3. [root@s168 fdfs]#cd/usr/ローカル/nginx/conf/
  4.  
  5. [root@s168 conf]#vim nginx.conf
  6.  
  7. #次の設定を追加します
  8.  
  9. サーバ{
  10.  
  11. 聞く88;
  12.  
  13. サーバー名192.168.27.168;
  14.  
  15. 場所/ファントJ/M00{
  16.  
  17. ngx_fastdfs_モジュール;
  18.  
  19. }
  20.  
  21. }
  22.  
  23.  
  24. # 設定検出を実行するには、/usr/ local /nginx/sbin ディレクトリに入ります
  25.  
  26. [root@s168 sbin]#./nginx -t
  27.  
  28. ngx_http_fastdfs_set pid=6431
  29.  
  30. nginx:設定ファイル/usr/ local /nginx/conf/nginx.conf 構文isok
  31.  
  32. nginx:設定ファイル/usr/ local /nginx/conf/nginx.conf テストは成功しました
  33.  
  34. # nginxを起動する
  35.  
  36. [root@s168 sbin]#./nginx
  37.  
  38. ngx_http_fastdfs_set pid=6436

サービスを再起動してテストする

  1. [root@s168 fdfs]#fdfs_trackerd tracker.conf を再起動
  2.  
  3. waitforpid[1202]終了...
  4.  
  5. 起動...
  6.  
  7. [root@s168 fdfs]#fdfs_storaged storage.conf を再起動
  8.  
  9. waitforpid[1211]終了...
  10.  
  11. 起動...
  12.  
  13. [root@s168 fdfs]#/usr/ローカル/nginx/sbin/nginx-s をリロード
  14.  
  15. ngx_http_fastdfs_set pid=6463

6. 構成成功テスト

<<:  60 個の DevOps「武器」、どれを使っていますか?

>>:  瞬きする間に、情報は 17 億回更新されます。 Alibaba Cloud オープンソースのリアルタイムコンピューティングプラットフォーム

推薦する

SEMマーケティングにおけるキーワードの適切な組み合わせ

SEM マーケティングの効果は、配置されたキーワードの品質に大きく依存します。検索するキーワードが違...

記事が含まれていないか、タイトルの類似性に関連していない

私のフレンドリーリンク欄に北京の SEO があります。このブログといえば、私の 2 番目のフレンドリ...

NFVがなければ5Gもありません。 6 年間の仮想化の旅の後半の刺激的な旅が始まったばかりです。

私たちがNFVを愛してから6年が経ちました。この物語は、AT&T、ブリティッシュ・テレコム、...

脱獄チームは金銭の受け取りを否定し、太極拳との協力を打ち切った

本日、脱獄チームevad3rsは公式サイトで声明を発表し、Tai Chi Assistantとの協力...

データ分析: Baidu は K-station を通じてユーザー エクスペリエンスを向上できるか?

Baidu は、ユーザー エクスペリエンスを向上させるためだと主張して、大規模なサイト禁止を実施して...

テンセントと新浪はソーシャル電子商取引分野への参入を望んでいる。今年はこの業界で激しい競争の時期になるかもしれない。

利用者数、訪問数、資金調達などでリードするソーシャル電子商取引が頻繁に話題となると、インターネット大...

今年上半期のモバイル広告トラフィックに関するホワイトペーパー

上半期と比べると、上半期は文化娯楽と社交結婚恋愛の二大産業の広告比率が大幅に増加し、第1四半期は総合...

共同購入ウェブサイトの開発:勝利の戦略

2012年から2013年にかけて、共同購入ウェブサイトの数は雨後の筍のように急増しました。国際資本市...

動画サイトの会員制が不評なのはなぜでしょうか? ウェブサイトは外部リソースに依存しすぎている

動画サイト文/周普少し前、動画広告に関する議論がネット上で勃発しました。一方では、動画サイト側は、広...

わずか 3 ステップで Docker を使用して Nginx リバース プロキシを作成する

Web アーキテクチャでは、俊敏性とスケーラビリティが不可欠であり、最適なパフォーマンスを確保しなが...

ウェブサイトのライフサイクルをどのように見ていますか? 沈黙した後、爆発的に増加しますか?

保険について少しでも知っている人なら、命には値段のつけられない価値があること、そして保険会社が人の価...

友好的なリンクの交換は投資である

フレンドリー リンクの交換は、SEO の最も重要なタスクの 1 つです。フレンドリー リンクの価値は...

100姓のグループがブランド協力の新たな扉を開く

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス「並外れた気質を持つ名前...

ライブストリーミングは、商品を電子商取引に持ち込むための最も強力なツールとなっている

コア読書: 1. なぜeコマースプラットフォームがライブストリーミング市場に参入しているのでしょうか...

buyvm-公式SSD VPSが販売開始

本日より buyvm が正式に SSD ハード ドライブをリリースすることをお知らせします。これは、...