この記事では主に、Linux サーバー上に FastDFS ファイル サーバーを構築する方法を紹介します。内容が比較的複雑なので、大まかに9つのステップに分かれています。下の穴に連れて行ってあげましょう! まず、TaobaoのシニアアーキテクトであるYu Qing氏が主導してC言語で書かれ、オープンソース化された分散ファイルシステムであるFastDFSについて簡単に紹介します。中小企業に適しており、ファイルはブロックに分割されません。 主にTracker(管理)とStorage(保管)があります。 戻りパス = グループ名/仮想ドライブ文字 {M00/00/02}/ファイル名 1. ソフトウェアパッケージ以下は ステップ 1: ブラウザのアドレス バーに https://sourceforge.net/projects/fastdfs/files と入力すると、次の図に示すインターフェイスが表示されます。 ステップ 2: FastDFS Server インストール パッケージをダウンロードします。上の図の「FastDFS Server ソース コード」をクリックすると、以下に示すインターフェイスが表示されます。最も安定したバージョンである 2014-12-02 バージョンを選択します。 ステップ 3: 以下に示すようなインターフェイスが表示されます。「FastDFS_v5.05.tar.gz」をクリックしてダウンロードします。 以下はダウンロードした または自分でダウンロードする https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz を取得します。 http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz を取得します。 https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz をダウンロードしてください http://nginx.org/download/nginx-1.12.1.tar.gz をダウンロードしてください 2. gccをインストールするシステムにGCCがインストールされているかどうかを確認する gcc –バージョン GCCをインストールする yum -y gcc をインストール gcc-c++ autoconf pcre pcre-devel make automake yum -y インストール wget httpd-tools vim C 言語コンパイラとして gcc を使用し、C++ 言語コンパイラとして g++ を使用するだけです。(Zhihu) 3. libfastcommonをインストールするlibfastcommon圧縮パッケージディレクトリに入り、解凍、コンパイル、インストールします。 tar -zxvf libfastcommonV1.0.7.tar.gz 解凍したlibfastcommon-1.0.7ディレクトリに入り、コンパイルします。 ./make.sh インストール ./make.sh インストール 最後に、libfastcommon.so ファイルは usr/lib にあります。コピーしたパスを実際のファイル パスに合わせて変更してください。 cp /data/fastDFS/software/libfastcommon-1.0.7/src/libfastcommon.so /usr/lib 4. FastDFSをインストールする
tar -zxvf FastDFS_v5.05.tar.gz ./make.sh ./make.sh インストール インストールが成功したら、 cp /data/fastDFS/software/FastDFS/conf/* /etc/fdfs/ 5. トラッカーをインストールする
base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/fastdfs (注: ログファイル) http.server_port=8080 >>> http.server_port=80 (注: 便宜上、ポート 80 がデフォルトです) store_group=group1 (注: グループ名) その中で、 ログ
その後、 fdfs_trackerd /etc/fdfs/tracker.conf 開始 netstat -unltp | grep トラッカー 6. ストレージをインストールするストレージとトラッカーの両方が fastDFS プログラムを実行するため、各サーバーは fasfDFS を展開し、1 つのサーバーはトラッカー、もう 1 つのサーバーはストレージになります。 base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/storage (ログパス) store_path0=/home/yuqing/fastdfs >>> store_path0=/home/data/storage (実際のストレージファイルパス、複数のパスを設定できます) tracker_server=192.168.209.121:22122 >>> tracker_server=192.168.2.231:22122 (トラッカーサーバーのアドレスに接続) group_name=group1 (トラッカーグループ名と同じである必要があります) http.server_port=80 (このポートも変更する必要があります) 次に、 fdfs_storaged /etc/fdfs/storage.conf 開始 netstat -unltp | grep ストレージ 最後に、 fdfs_monitor /etc/fdfs/storage.conf 以下のように、 7. 画像のアップロードをテストするトラッカーとストレージがインストールされました。次のコマンドを使用してファイルのアップロードをテストします。 /etc/fdfs の client.conf を変更します。 base_path=/home/logs/client (ログディレクトリ) tracker_server=192.168.2.231:22122 (トラッカーポート) テストコマンド /usr/bin/fdfs_test /etc/fdfs/client.conf に anti-steal.jpg をアップロードします 返送先住所が以下の通りであれば成功です 8. Nginx をインストールします。Nginx に必要なその他の環境をインストールします。GCC は上記でインストールされています。インストール時にこの手順を実行しなかった #gcc インストール yum install gcc-c++ #PCRE pcre-devel インストール yum install -y pcre pcre-devel # zlib をインストール yum install -y zlib zlib-devel #OpenSSL インストール yum install -y openssl openssl-devel 解凍し、コンパイルしてインストールします。 tar -zxvf nginx-1.12.1.tar.gz nginx-1.12.1をインストールします ./configure 作る インストールする 9. fastdfs-nginx-moduleをインストールするまず、 ライブラリファイルlibfdfsclient.soをusr/lib64ディレクトリにコピーします。 cp /usr/lib64/libfdfsclient.so /usr/lib nginx インストール ディレクトリで次のコマンドを実行します。モジュールを nginx に追加します。インストールパラメータを設定してモジュールを追加します。 nginx-1.12.1をインストールします ./configure --add-module=../fastdfs-nginx-module/src 注: nginx-1.12.1とfastdfs-nginx-moduleが同じディレクトリにあるので、次のように記述します。 コンパイラを再インストールする 作成 && インストール Nginxモジュールを表示 nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。 fastdfs-nginx-moduleソースコードの設定ファイルを/etc/fdfsディレクトリにコピーし、変更します。 fastdfs-nginx-module/src をコピーします mod_fastdfs.confを/etc/fdfs/にコピーします。 /etc/fdfs/ に入り、mod_fastdfs.conf を以下のように変更します。その他の設定はデフォルトのままです。 #接続タイムアウト connect_timeout=10 トラッカーサーバー トラッカーサーバー=192.168.2.231:22122 # StorageServer のデフォルトポート storage_server_port=23000 # ファイルIDのURIに/group**が含まれている場合はtrueに設定します url_have_group_name = true # ストレージ構成の store_path0 パスは、storage.conf のパスと一致している必要があります。store_path0=/home/data/storage # ログファイルを保存する基本パス ベースパス=/home/logs/storage iNginxを設定し、/usr/local/nginx/confディレクトリに入り、nginx.confを変更します。 注: どこで解凍してインストールしても問題ありません。このディレクトリ/usr/local/nginx/confに移動し、nginx.confを変更する必要があります。 vim nginx.conf 設定、その他のデフォルトを変更する fastdfs-nginxモジュールをポート80に追加します 場所 ~/group([0-9])/M00 { ngx_fastdfs_モジュール; } 次の #user nobody; が #user root; に変更されていることに注意してください。 #ユーザーnobody; ワーカープロセス 1; #error_log ログ/error.log; #error_log ログ/error.log 通知; #error_log ログ/error.log 情報; #pid ログ/nginx.pid; イベント { ワーカー接続 1024; } http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log ログ/access.log メイン; ファイル送信オン; #tcp_nopush オン; #キープアライブタイムアウト 0; キープアライブタイムアウト65; #gzip オン; サーバー{ 聞く 80; サーバー名 192.168.2.231; 場所 ~/group([0-9])/M00 { ngx_fastdfs_モジュール; } #文字セット koi8-r; #access_log ログ/host.access.log メイン; 位置 / { ルートhtml; インデックス index.html index.htm; } #エラーページ 404 /404.html; # サーバーのエラーページを静的ページ /50x.html にリダイレクトします # エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { ルートhtml; } # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします # #場所 ~ \.php$ { # プロキシパス http://127.0.0.1; #} # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します # #場所 ~ \.php$ { #ルートhtml; #fastcgi_pass 127.0.0.1:9000; # fastcgi_index インデックス.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params を含めます。 #} # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する # nginxのものと一致します # #場所 ~ /\.ht { # すべて拒否; #} } # IP、名前、ポートベースの設定を組み合わせた別の仮想ホスト # #サーバー{ # 8000を聴く; # somename:8080 をリッスンします。 # server_name somename alias another.alias; # 位置 / { #ルートhtml; # インデックス index.html index.htm; # } #} # HTTPS サーバー # #サーバー{ # 443 ssl をリッスンします。 # サーバー名 localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache 共有:SSL:1m; #ssl_session_timeout 5分; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers オン; # 位置 / { #ルートhtml; # インデックス index.html index.htm; # } #} } 知らせ: listen 80 ポート値は、/etc/fdfs/storage.conf の http.server_port=80 に対応している必要があります (以前は 80 に変更されていました)。別のポートに変更する場合は、それを統合し、ファイアウォールでポートを開く必要があります。 場所の設定については、複数のグループがある場合は、場所を ~/group([0-9])/M00 に設定します。グループがない場合は、グループは必要ありません。 ファイル保存ディレクトリにソフトリンクを作成し、実際にデータが保存されているディレクトリにリンクします。このファイル保存場所の背後にある複数のデータディレクトリは、システムによって自動的に生成されることに注意してください。 ln -s /home/data/storage/data /home/data/storage/data/M00 nginxを起動する #nginxを起動する /usr/local/nginx/sbin/ をコピーします。 ./nginx は /usr/local/nginx/sbin/nginx を直接起動します。 #vim の起動を設定する /etc/rc.local ローカル # 実行権限を設定する chmod 755 rc.local Nginxが起動しているか確認する ps -ef | grep nginx クラウドサービスのセキュリティグループとファイアウォール設定は80、22122、23000にする必要があることに注意してください。これを行う方法がわからない場合は、Tencent Cloud Server Tomcat Port Unreachableのファイアウォール設定を参照してください。 アドレスバーで正常にアクセス http://192.175.231.128/group1/M00/00/00/rBAACVzBeU2AQBKJAAOHDqS1H9o350.jpg エラーを報告してください!存在しません。問題110、120、119があります 知らせ: 1. グループ 2 の同じグループ内の Storage2 と Storage3 の FastDFS サービス ポートは一貫している必要があります: port=23000。 2. サーバーは複数のグループを持つことができますが、同じグループに複数のストレージを持つことはできません。ログにエラーが報告されます。エラーの理由は「注 1」です。 3. バージョン 4.05 より前では、fastdfs は libevent を http サーバーとして内部的にバインドしていました。バージョン 4.05 以降のバージョンでは、組み込みの Web http サービスが削除されました。組み込みの Web http サービスは負担となるため、使用しない方がよいでしょう。 4. ストレージ サーバーを起動すると、常にデッドロック状態になります。ストレージ サーバーを起動すると、ストレージはトラッカー サーバーに接続します。接続できない場合は再試行を続けます。接続が成功するまで起動は完了しません。クラスター内にトラッカーサーバーが2台ある場合、 トラッカーの 1 つが起動されていない場合、ストレージ サーバーはデッドロック状態のままになる可能性があります。 Linux で FastDFS ファイル サーバーを構築する実装手順に関するこの記事はこれで終わりです。Linux で FastDFS ファイル サーバーを構築する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLフィールド定義でnullを使用しない理由の分析
>>: 小さな画面のモバイルデバイス向けにWebページを設計する際に注意すべきこと
.NET SDK ダウンロード リンクhttps://dotnet.microsoft.com/do...
目次事前準備実施方法: 1. 単一のデータを挿入する2. マージデータ挿入3. MySqlBulkL...
効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...
1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...
Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...
docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...
このソリューションの利点はシンプルさと使いやすさですが、欠点はダウンタイムが長くなることです。 した...
設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...
Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...
データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...
序文最近、データベースのテーブルに 2 つのフィールドを追加しました。その後、ディスク容量不足のよう...
Linux サーバー A と B が 2 台あり、一方のサーバーから SSH 経由でパスワードなしで...
シングルノードデータベースの欠点大規模なインターネットプログラムはユーザーベースが大きいため、アーキ...
整合性制約整合性制約はテーブル データの正確性を保つためのものです。データが正しくない場合は、そもそ...
この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...