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

推薦する

初心者が注目すべきウェブサイト最適化アンカーテキスト

ウェブサイトの最適化の過程で、アンカーテキストという言葉が頻繁に登場します。誰もがよく話題にする高品...

ブラックストーンがハイブリッドクラウドの境界を拡大、テンセントクラウドがユーザーによるより充実したハイブリッドクラウドの構築を支援

「国内のIT環境が従来のアーキテクチャからクラウドアーキテクチャへと進化するにつれ、プライベートクラ...

適切なウェブサイトSEO診断を行う際には、こだわりすぎないようにしましょう

SEO診断という言葉が2009年に徐々に皆に認知されて以来、検索数は増加傾向にあり、2012年初頭に...

Baidu のハイパーリンク不正行為の詳細な分析: 推奨の意味を持たないリンク

今日、Taobaoを閲覧して、パイプライン遠心ポンプのウェブサイト用の外部リンク配信サービスプロバイ...

RaidLogic.NET $24/年 128Mメモリ(ロサンゼルス)推奨

RaidLogic.NET は 2001 年から確立されたビジネスなので、逃げ出す心配はありません。...

どのような状況でブラックハット手法がランキング向上に利用できるのか

今日、青島SEOは注文を受けました。クライアントとの電話中、クライアントはウェブサイトのランキングを...

新しいウェブサイトを立ち上げる際にインクルージョンスキルを解決する方法 - 出発点

立ち上げたばかりの新しいサイトや、オンラインになってから 1 ~ 2 か月以上経った新しいサイトの場...

404 ページの本質: ユーザーのための忠実なガイド

ウェブサイト上のデッドリンクや間違ったリンクを避けることは困難です。サイト上の記事の削除やウェブサイ...

ウェブマスターネットワークニュース:Yu'ebaoが公的資金の引き抜きを引き起こし、Aiku.comは閉鎖される

1. 紙媒体の枠を越え、電子雑誌アプリ広告からスタートそれは2009年末のことでした。しばらくモダン...

Godaddy 1.99 USD 登録またはcomへの転送(中国のクレジットカードをサポート)

2018年3月25日に確認済み、godaddy1.99 USD登録またはcomへの転送(中国のクレジ...

謝文:インターネットは涙を信じません。伝統的なメディアは3〜5年以内に急速に変化するはずです。

3年前、私は伝統的なメディア界に新しいメディアを紹介するよう何度か依頼されました。彼は厳しい口調と期...

草の根ウェブマスターがBaiduの最適化体験をあなたと一緒に分析します

2013 年が SEO 担当者にとって激動の年であったとすれば、2014 年は SEO 担当者にとっ...

ウェブサイト分析レポートで適切な統計チャートを選択する方法

さまざまなウェブサイト分析ツールによって収集されるデータは大きく異なるため、これらのデータに基づいて...

テクノロジーは業界に力を与え、水クラウドプラットフォームには有望な未来がある

時代の発展に遅れを取らないために、スマート水管理は現在、ほとんどの水資源大手の戦略的開発の中核となっ...

まとめ: アメリカの優れたVPSの推奨事項、安価または低価格、優れたアフターサービス

「アメリカのVPS」に関して、「Host Cat」のネットユーザーは、VPSの速度、VPSの安定性、...