FastDFS と Nginx を組み合わせてファイル サーバーを構築し、パブリック ネットワーク アクセスを実現 [イントラネットの浸透]

序文

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

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

ファイルのアップロードとダウンロードとしてパブリック ネットワーク サーバーを設置すると、多くのリソースとオーバーヘッドがかかります。FastDFS サービスをローカルに構築する場合は、cpolar イントラネット ポート転送ツールを使用して、インターネット経由でファイルにアクセスできるように設定するだけで済みます。サーバー料金とオーバーヘッドを大幅に削減するため、この記事では FastDFS を構築する詳細なチュートリアルを紹介し、Nginx と cpolar ツールを組み合わせてファイルへのリモート アクセスを実現します。

1. FastDFS ファイル システムをローカルに構築する

1.1 環境のインストール

fastDFSはC言語で書かれているのでインストールする必要があります。gcc

yum -y install gcc-c++ 

FastDFS は依存しているためlibevent库、インストールする必要があります。次のコマンドを実行します。

yum -y install libevent

1.2 libfastcommon のインストール

ローカルディレクトリを入力してください

cd /usr/local

libfastcommon は FastDFS によって公式に提供されており、libfastcommon には FastDFS の実行に必要ないくつかの基本ライブラリが含まれています。以下のリンクをクリックして入手してください。

https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.7

取得したらlocalディレクトリにアップロードします

1679321808236

libfastcommonを解凍します

tar -zxvf libfastcommonV1.0.7.tar.gz

解凍したフォルダーに移動します

cd libfastcommon-1.0.7/

コンパイル

./make.sh

インストール

./make.sh install

libfastcommon をインストールすると、次のディレクトリにライブラリ ファイルが自動的にコピーされます/usr/lib64が、FastDFS プログラムは usr/lib ディレクトリを参照するため、/usr/lib64 配下のライブラリ ファイルを /usr/lib にコピーする必要があります。

cp /usr/lib64/libfastcommon.so /usr/lib/

1.3 FastDFS のインストール

ローカルディレクトリを入力してください

cd /usr/local

次のアドレスをクリックして、FastDFS_v5.05.tar.gz ファイルをダウンロードします。

https://sourceforge.net/projects/fastdfs/

ファイルをダウンロードしたら、次FastDFS_v5.05.tar.gzの場所にアップロードします。/usr/local/

1679322527568

ファイルを解凍する

tar -zxvf FastDFS_v5.05.tar.gz 

解凍したフォルダーに移動します

cd FastDFS

コンパイル

./make.sh 

インストール

./make.sh install

インストールが成功したら、インストールディレクトリのconf配下のファイルを/etc/fdfs/以下にコピーします。

cd conf/

コピー

cp * /etc/fdfs/

1.4 トラッカーの構成

次に、インストールが成功したら/etc/fdfsディレクトリを設定して入力します。

cd /etc/fdfs/

tracker.confを変更する

vim tracker.conf

base_path=/home/yuqing/fastdfs変更しますbase_path=/home/fastdfs

1679321890447

編集後に保存して終了し、対応するファイルを作成します。fastdfs文件夹

mkdir /home/fastdfs

それから始めます

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

ブートを設定する

vim /etc/rc.d/rc.local

実行コマンドラインをファイルに追加します

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

1679321943356

1.5 ストレージの構成

/etc/fdfs ディレクトリに入ります

cd /etc/fdfs

storage.confを変更する

vim storage.conf

base_path=/home/yuqing/fastdfs変更しますbase_path=/home/fastdfs

1679322281423

store_path0=/home/yuqing/fastdfs変更しますstore_path0=/home/fastdfs/fdfs_storage

1679322153239

変更を続け、トラッカー サーバーの IP、tracker_server=Linux LAN ip: 22122 を設定し、設定後に保存して終了します。

1679322199689

対応する fdfs_storage フォルダーを作成します

mkdir /home/fastdfs/fdfs_storage

それから始めます

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

自動起動を設定する

vim /etc/rc.d/rc.local

実行コマンドラインをファイルに追加して保存します。

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

画像-20230319225348678

1.6 アップロードとダウンロードのテスト

FastDFS が正常にインストールされている場合は、/usr/bin/fdfs_test コマンドを使用してアップロードおよびダウンロードの操作をテストできます。

/etc/fdfs/client.confを変更します

vim /etc/fdfs/client.conf

次の内容を変更して保存します。

base_path=/home/fastdfs

tracker_server=Linux局域网ip:22122

1679322420123

次に、ファイルのアップロードをテストします。ここでは、テストとして使用するために写真を/usr/localディレクトリにアップロードします。

1679322482853

FastDFS アップロード ファイル形式:

/usr/bin/fdfs_test /etc/fdfs/client.conf Upload+ ファイルをアップロードするパス

次に、形式に従って test23.png 画像を FastDFS にアップロードします。

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png

実行後、戻りアドレス情報が表示されます。これは成功を意味しますが、まだアクセスできません。アクセスしてダウンロードするには、Nginx を組み合わせる必要があります。

1679322601788

1.7 Nginx との統合

以下のダウンロード リンクをクリックして、fastdfs-nginx-module_v1.16 をダウンロードします。

[https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz/download](https://sourceforge.net/projects/ fastdfs/files/FastDFS Nginx モジュール ソース コード/fastdfs-nginx-module_v1.16.tar.gz/download)

/usr/local/フォルダーを入力してください

cd /usr/local/

アップロードfastdfs-nginx-module_v1.16.tar.gz

1679322637070

fastdfs-nginx-module_v1.16.tar.gz を解凍します。

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

src と入力し、構成ファイルを編集します

cd fastdfs-nginx-module/src/

構成ファイルを変更する

vim config

これら 3 つの場所を変更し、元の /usr/local/ だったパスを /usr/ に変更し、保存して終了します。

1679322770876

次に、FastDFS-nginx-module/src の下にある mod_FastDFS.conf を /etc/fdfs/ にコピーします。

cp mod_fastdfs.conf /etc/fdfs/

mod_FastDFS.conf の内容を変更します。

vim /etc/fdfs/mod_fastdfs.conf

変更内容は次のとおりです。

Base_path=/home/fastdfs

tracker_server=Linux LAN IP アドレス: 22122

url_have_group_name=true #url にはグループ名が含まれています

store_path0=/home/fastdfs/fdfs_storage #ファイルストレージパスを指定

1679405651550

次に、libfdfsclient.so を /usr/lib にコピーします。

cp /usr/lib64/libfdfsclient.so /usr/lib/

nginx/clientディレクトリを作成するだけです

mkdir -p /var/temp/nginx/client

1.8 Nginxのインストール

まずはシリアル環境をインストールします

yum -y install pcre pcre-devel  
yum -y install zlib zlib-devel  
yum -y install openssl openssl-devel

次に、クリックして Nginx パッケージをダウンロードします。

nginx-1.16.1.tar.gz

ルートディレクトリにアップロードする

1679323002737

解凍して解凍したフォルダに入ります

tar -zxvf nginx-1.16.1.tar.gz && cd nginx-1.16.

FastDFS-nginx-module モジュールを追加し、次のコマンドを実行します。

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs-nginx-module/src

1679320271108

それからコンパイルします

make

インストール

make install

1.9 Nginx の構成

Nginx設定ファイルを変更する

vim /usr/local/nginx/conf/nginx.conf

サーバーを追加し、追加後に保存して終了します。

server {
    
    
        listen       8089;#为了防止80端口,我们改成8089
        server_name  192.168.59.133;#这里需要使用你本机的局域网ip

        location /group1/M00/{
    
    
                ngx_fastdfs_module;
        }
}

1679406356346

Nginxを起動する

/usr/local/nginx/sbin/nginx 

nginx起動時に以下のエラーが発生した場合:

nginx: [emerg] open() “/var/run/nginx/nginx.pid” が失敗しました (2: そのようなファイルまたはディレクトリはありません)

次のコマンドを実行して、再度開始できます。

mkdir /var/run/nginx

起動時に自動的に起動するように設定します。

vim /etc/rc.d/rc.local

実行中のコマンド ラインをファイルに追加し、保存して終了します。

/usr/local/nginx/sbin/nginx

1679321237969

ファイアウォールをオフにする

service iptables stop

ファイアウォールが自動的に起動しないように設定する

chkconfig iptables off

2. LANテストアクセスFastDFS

次に、形式に従って、上でアップロードした test23.png 画像を FastDFS にテストアップロードします。

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/local/test23.png

実行後、戻りアドレス情報が表示され、成功したことがわかります。

1679323425917

次に、上記のアドレスを使用してブラウザでアクセスすると、アップロードした写真が表示され、fastDFS が構築されます。

1679406429350

3. cpolar イントラネットペネトレーションをインストールする

上記では、ローカル Linux 仮想マシンに fastDFS 分散ファイル サービスをインストールしました。次に、cpolar イントラネット侵入ツールをインストールしました。cpolar の http パブリック ネットワーク アドレスを通じて、fastDFS にアップロードされたファイルにリモートから簡単にアクセスできます。登録する必要はありませんクラウドサーバーを購入するためのドメイン名 cpolar イントラネットペネトレーションをインストールする手順は次のとおりです

cpolar公式サイト: https: //www.cpolar.com/

  • ワンクリックスクリプトを使用してコマンドをインストールする
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • トークン認証

cpolar 公式 Web サイトの背景にログインし、左側の検証をクリックして自分の認証トークンを表示し、コマンド ラインにトークンを貼り付けます。

cpolar authtoken xxxxxxx

20230206171248

  • システムにサービスを追加する
sudo systemctl enable cpolar
  • cpolarサービスを開始する
sudo systemctl start cpolar

4. パブリックネットワークアクセスアドレスを設定する

cpolar サービスが正常に開始された後、ブラウザーで Linux LAN IP アドレス + ポート 9200 にアクセスし、cpolar Web UI 管理インターフェイスにログインします。

ログインに成功したら、左側のダッシュボードで [トンネル管理] - [トンネルの作成] をクリックし、上記で設定した Nginx8089 ポートを指す http プロトコル トンネルを作成します。

  • トンネル名: カスタマイズできます。既存のトンネル名と重複しないように注意してください。
  • プロトコル: http
  • 現地住所: 8089
  • ドメイン名のタイプ: 無料でランダムなドメイン名を選択します
  • 地域: 中国 VIP を選択

クリック创建

1679406828417

次に、オンライン トンネル リストを開き、パブリック ネットワーク アドレスを表示してコピーします。

1679406894080

次に、ブラウザを開いてパブリック ネットワーク アドレスを入力し、fastDFS にアップロードしたファイルにアクセスすると、リモート アクセスが成功します。

1679406972587

5. 固定パブリックネットワークアドレス

作成したばかりのトンネルはランダムな一時アドレスを使用するため、アドレスは 24 時間以内に変更されます。長期的かつより安定したリモート アクセスのために、次にこのパブリック ネットワーク アドレスを固定として構成します。

5.1 予約済みの第 2 レベルのサブドメイン

第 2 レベルのサブドメインの構成をサポートするには、基本パッケージ以上にアップグレードする必要があります。ファイルをダウンロードする必要がある場合は、上位のパッケージにアップグレードして帯域幅を増やし、ダウンロード速度を向上させることができます。

cpolar 公式 Web サイトの背景にログインし、左側のダッシュボードをクリックして を预留見つけ保留二级子域名、http トンネルの第 2 レベルのサブドメイン名を予約します。

  • 地域: サーバー地域を選択します
  • 名前: 保持したい第 2 レベルのサブドメイン名を入力します (カスタマイズ可能)
  • 説明: 備考。カスタマイズ可能

1679407261443

この例では、fasttestという名前の第 2 レベルのサブドメインを予約します。サブドメイン名が正常に予約されたら、サブドメイン名をコピーし、それをトンネル内で構成する必要があります。

1679407306636

5.2 第 2 レベルのサブドメイン名の構成

cpolar Web UI 管理インターフェイスにログインします。左側のダッシュボードで隧道管理[——]をクリックし隧道列表、第 2 レベルのサブドメイン名を構成する必要があるトンネルを見つけて、右側の をクリックします编辑

1679407950343

トンネル情報を変更し、トンネルに第 2 レベルのサブドメイン名を設定します。

  • ドメインの種類: 代わりに選択してください二级子域名
  • サブドメイン: 予約したばかりの第 2 レベルのサブドメイン名を入力します (この例ではfasttest)。

変更が完了したら、 をクリックします。更新

1679407459593

トンネルが正常に更新されたら、左側のダッシュボードで状态[——]在线隧道列表をクリックすると、第 2 レベルのサブドメイン名に更新されたトンネルのパブリック ネットワーク アドレスが表示され、そのパブリック ネットワーク アドレスをコピーできます。

1679407508347

6. 固定された第 2 レベルのサブドメインへのアクセスをテストする

正常に構成された第 2 レベルのサブドメイン名へのアクセスをテストしてみましょう。ブラウザを開いて、パブリック ネットワーク アドレスとリソース パスを入力し、fastDFS にアップロードしたファイルにアクセスします。画像が表示されれば、リモート アクセスは成功したことになります。これで、ネットワーク全体で唯一のプライベートの第 2 レベルのサブドメイン名が作成されました。

そして、このアドレスはランダムに変更されることはなく、固定されています。トンネルがオンラインである限り、このパブリック ネットワーク アドレスを使用して、パブリック ネットワーク IP やルーターの設定を必要とせずに、いつでもどこでもリモート アクセスできます。

1679407663302

cpolar 極点群の記事より転載: FastDFS と Nginx を組み合わせてファイル サーバーを構築し、内部ネットワークを貫通してパブリック ネットワーク アクセスを実現

おすすめ

転載: blog.csdn.net/ks_wyf/article/details/132421371