分散ファイルサーバーを実装するための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 オープンソースのリアルタイムコンピューティングプラットフォーム

推薦する

無制限トラフィック VPS: limewave、米国 VPS (シアトル)、最小構成 $20/月、4 RAM/2 コア/50GSSD/100M 帯域幅

Limewave は独自のネットワーク AS36369 と IP を持っています。現在はインターネッ...

SEO担当者が競合他社に段階的に「対処」する方法

利益をめぐる競争があるところには、必然的に競争相手が存在します。巨大な商業価値を持つ大きなパイである...

ハイブリッドクラウドは「発酵」を続け、大きなトレンドとなっている

[[439567]]企業がクラウドに移行するには、パブリック クラウド、プライベート クラウド、ハイ...

SAP Business AI に注力し、新たな品質生産性の開発を強化しましょう。 SAP中国サミットが盛大に開催されました

2024年5月10日、「中国の新興企業が新たな品質の生産性を開発できるように支援する」をテーマにした...

Chromiumコアブラウザのパケットキャプチャツールを使用して悪意のあるコードを削除します

昨年の12月頃、友人から、私のウェブサイトを開くと広告がポップアップ表示されることに気付かされました...

frontrangehosting-768m メモリ KVM/44g ハードディスク/1.5T トラフィック/Win 互換/月額 6 USD

frontrangehosting は設立から 2 年未満の VPS 事業者です。VPS のパフォー...

Veeble - ウェブサイト構築用 VPS / 月額 4 ドルから / トラフィック無制限 / Windows 2003 搭載

veeble.org 社は 2009 年に設立されました。同社の事業は、ドメイン名、証明書、仮想ホス...

クラウドコンピューティングについてどれくらいご存知ですか?

クラウド コンピューティングは、ソフトウェアとハ​​ードウェアのリソースを共有するインターネット ベ...

安定した PHP 仮想ホストの選び方

PHP型仮想ホスティング このタイプの仮想ホスティングは、海外で古くから開発されてきました。技術は比...

ライブ配信で商品を販売する有名人の3つの罪

ライブストリーミング電子商取引が失敗することはますます容易になっています。 5月28日、ウェイ・ヤー...

ローカルウェブサイトを運営する4つの方法

人がいる世界があるなら、世界があるところにはどこにでもローカル Web サイトが存在します。おそらく...

中国のクラウド運用市場は今年上半期に成長を達成

2020-12-23 09:35 市場調査会社IDCが発表した最新のレポートによると、2020年上半...

NetEase Cloud は 3 周年を迎え、60 万人の開発者が接続し、年間収益の成長率は 200% を超えています。

2018年10月11日、NetEaseの通信・動画クラウドサービスブランドであるNetEase Cl...

Tencent eSportsは新たな世界を見つけたのか?

「中国のeスポーツはシルバーからゴールドへと移行している。」中国文学を引き継ぐ前、テンセント副社長の...