Implementierungsschritte zum Erstellen eines FastDFS-Dateiservers unter Linux

Implementierungsschritte zum Erstellen eines FastDFS-Dateiservers unter Linux

Dieser Artikel stellt hauptsächlich vor, wie man einen FastDFS-Dateiserver auf einem Linux-Server erstellt. Die Unterteilung erfolgt grob in 9 Schritte, da die Inhalte relativ komplex sind. Lass mich dich in die Grube da unten führen!

Lassen Sie mich zunächst kurz FastDFS vorstellen, ein verteiltes Dateisystem, das in der Programmiersprache C geschrieben und von Herrn Yu Qing, einem leitenden Architekten von Taobao, als Open Source entwickelt wurde. Geeignet für kleine und mittlere Unternehmen, Dateien werden nicht in Blöcke aufgeteilt.

Dabei handelt es sich im Wesentlichen um Tracker (Verwaltung) und Storage (Speicher).

Rückgabepfad = Gruppenname/virtueller Laufwerksbuchstabe {M00/00/02}/Dateiname

1. Softwarepaket

Nachfolgend finden Sie das Installationspaket für FastDFS

Schritt 1: Geben Sie https://sourceforge.net/projects/fastdfs/files in die Adressleiste des Browsers ein und Sie sehen die in der folgenden Abbildung dargestellte Benutzeroberfläche.

Schritt 2: Laden Sie das FastDFS Server-Installationspaket herunter. Klicken Sie im obigen Bild auf „FastDFS Server-Quellcode“ und Sie sehen die unten gezeigte Schnittstelle. Wählen Sie die Version 2014-12-02, da dies die stabilste Version ist.

Schritt 3: Wir sehen die Schnittstelle wie unten dargestellt, wir klicken zum Herunterladen auf „FastDFS_v5.05.tar.gz“.

Nachfolgend finden Sie die heruntergeladene

Oder laden Sie es selbst herunter

wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
wget http://nginx.org/download/nginx-1.12.1.tar.gz

2. Installieren Sie gcc

Überprüfen Sie, ob GCC auf dem System installiert ist

gcc –version

Installieren Sie GCC

yum -y gcc installieren gcc-c++ autoconf pcre pcre-devel make automake
yum -y installiere wget httpd-tools vim

Verwenden Sie einfach gcc als C-Sprachcompiler und g++ als C++-Sprachcompiler. (Zhihu)

3. Installieren Sie libfastcommon

Rufen Sie das komprimierte Paketverzeichnis von libfastcommon auf, um es zu dekomprimieren, zu kompilieren und zu installieren.

tar -zxvf libfastcommonV1.0.7.tar.gz

Öffnen Sie das entpackte Verzeichnis libfastcommon-1.0.7 und kompilieren Sie

./make.sh

Installieren

./make.sh installieren

Schließlich befindet sich die Datei libfastcommon.so in usr/lib. Bitte ändern Sie den kopierten Pfad entsprechend Ihrem tatsächlichen Dateipfad.

cp /data/fastDFS/software/libfastcommon-1.0.7/src/libfastcommon.so /usr/lib

4. Installieren Sie FastDFS

Entpacken Sie FastDFS_v5.05.tar.gz , kompilieren und installieren Sie dann FastDFS

tar -zxvf FastDFS_v5.05.tar.gz
./make.sh
./make.sh installieren

Nach erfolgreicher Installation kopieren Sie die Dateien im Verzeichnis conf in das Verzeichnis /etc/fdfs :

cp /data/fastDFS/software/FastDFS/conf/* /etc/fdfs/

5. Tracker installieren

Wechseln Sie in das Verzeichnis /etc/fdfs und ändern Sie die Datei tracker.conf . Wenn die Datei tracker.conf.sample nicht vorhanden ist, kopieren Sie sie nach tracker.conf und ändern Sie sie anschließend:

base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/fastdfs (Hinweis: Protokolldatei)

http.server_port=8080 >>> http.server_port=80 (Hinweis: Port 80 ist der Einfachheit halber der Standard)

store_group=group1 (Hinweis: Gruppenname)

Unter ihnen /home/

Protokolle

Wenn das Verzeichnis /fastdfs nicht vorhanden ist, erstellen Sie eines.

Starten Sie anschließend tracker und prüfen Sie, ob er erfolgreich gestartet wurde (die folgende Eingabeaufforderung wird angezeigt, die anzeigt, dass der Start erfolgreich war): Neustart

fdfs_trackerd /etc/fdfs/tracker.conf starten
netstat -unltp | Grep-Tracker 

6. Speicher installieren

Da sowohl der Speicher als auch der Tracker FastDFS-Programme ausführen, stellt jeder Server ein fasfDFS bereit, wobei ein Server der Tracker und der andere der Speicher ist.

Ändern Sie die Datei storage.conf . Falls die Datei storage.conf.sample nicht vorhanden ist, kopieren Sie sie nach storage.conf und ändern Sie sie anschließend:

base_path=/home/yuqing/fastdfs >>> base_path=/home/logs/storage (Protokollpfad)

store_path0=/home/yuqing/fastdfs >>> store_path0=/home/data/storage (tatsächlicher Speicherdateipfad, mehrere Pfade können konfiguriert werden)

tracker_server=192.168.209.121:22122 >>> tracker_server=192.168.2.231:22122 (Verbindung zur Tracker-Serveradresse herstellen)

group_name=group1 (muss mit dem Namen der Tracker-Gruppe identisch sein) http.server_port=80 (dieser Port muss ebenfalls geändert werden)

Wenn /home/logs/storage und /home/data/storage nicht existieren, erstellen Sie das Verzeichnis

Starten Sie anschließend storage und prüfen Sie, ob er erfolgreich war (die folgende Eingabeaufforderung wird angezeigt und zeigt an, dass der Start erfolgreich war):

fdfs_storaged /etc/fdfs/storage.conf starten
netstat -unltp | grep-Speicher 

Überprüfen Sie abschließend, ob tracker und storage kommunizieren:

fdfs_monitor /etc/fdfs/storage.conf

Wie unten gezeigt, wird ACTIVE angezeigt, was bedeutet, dass beide normal gestartet wurden. Jetzt können Sie das Hochladen von Dateien testen.

7. Testen Sie den Bild-Upload

Tracker und Speicher wurden installiert. Mit dem folgenden Befehl können Sie den Dateiupload testen:
FastDFS bietet einen Datei-Upload-Befehl: usr/bin/fdfs_test zum Testen des Datei-Uploads. Um den Upload zu testen, müssen Sie eine Verbindung zum Tracker-Server und zum Speicherserver herstellen. Daher müssen Sie eine Konfigurationsdatei angeben: die Konfigurationsdatei client.conf, und über Client.conf eine Verbindung zum Tracker-Server herstellen.

Ändern Sie client.conf unter /etc/fdfs

base_path=/home/logs/client (Protokollverzeichnis)
tracker_server=192.168.2.231:22122 (Tracker-Port)

Testbefehl

/usr/bin/fdfs_test /etc/fdfs/client.conf lade anti-steal.jpg hoch

Wenn die Absenderadresse wie unten angegeben ist, ist es erfolgreich

8. Installieren Sie Nginx.

Installieren Sie andere von Nginx benötigte Umgebungen. GCC wurde oben installiert. Ich habe diesen Schritt bei der Installation nicht gemacht

#gcc-Installation yum installiere gcc-c++

#PCRE pcre-devel installieren yum install -y pcre pcre-devel

# Installieren Sie zlib yum install -y zlib zlib-devel

#OpenSSL-Installation yum install -y openssl openssl-devel

Entpacken, kompilieren und installieren.

tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./konfigurieren
machen
installieren

9. Installieren Sie fastdfs-nginx-module

Entpacken Sie zuerst fastdfs-nginx-module_v1.16.tar.gz und ändern Sie die Datei /fastdfs-nginx-module/src/config. Alle lokalen entfernen (drei)

Kopieren Sie die Bibliotheksdatei libfdfsclient.so in das Verzeichnis usr/lib64

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

Führen Sie den folgenden Befehl im nginx-Installationsverzeichnis aus: Fügen Sie das Modul zu nginx hinzu. Fügen Sie Module hinzu, indem Sie Installationsparameter festlegen.

cd nginx-1.12.1
./Konfigurieren --add-module=../fastdfs-nginx-module/src

Hinweis: Ich habe nginx-1.12.1 und fastdfs-nginx-module im selben Verzeichnis, also schreiben Sie es so

Installieren Sie den Compiler neu

machen && machen installieren

Nginx-Module anzeigen

/usr/local/nginx/sbin/nginx -V

Kopieren Sie die Konfigurationsdatei im Quellcode des Fastdfs-Nginx-Moduls in das Verzeichnis /etc/fdfs und ändern Sie

cd fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/

Geben Sie /etc/fdfs/ ein und ändern Sie mod_fastdfs.conf wie folgt. Andere Einstellungen sind Standardeinstellungen.

#Verbindungs-Timeout connect_timeout=10

Tracker Server
tracker_server=192.168.2.231:22122

# StorageServer-Standardport storage_server_port=23000

# Wenn die URI der Datei-ID /group** enthält, setzen Sie sie auf true
url_have_group_name = wahr

# Der Pfad store_path0 der Storage-Konfiguration muss mit dem in storage.conf store_path0=/home/data/storage übereinstimmen.

# der Basispfad zum Speichern von Protokolldateien
Basispfad=/home/Protokolle/Speicher

Konfigurieren Sie iNginx, gehen Sie in das Verzeichnis /usr/local/nginx/conf und ändern Sie nginx.conf

Hinweis: Es spielt keine Rolle, wo Sie entpacken und installieren. Sie müssen in dieses Verzeichnis /usr/local/nginx/conf gehen und nginx.conf ändern

vim nginx.conf

Ändern Sie die Konfiguration, andere Standardeinstellungen

Fügen Sie das Modul fastdfs-nginx zu Port 80 hinzu

Standort ~/Gruppe([0-9])/M00 {
    ngx_fastdfs_module;
}

Beachten Sie, dass der folgende #user nobody; in #user root; geändert wird.

#Benutzer niemand;
Arbeiterprozesse 1;

#error_log Protokolle/Fehler.log;
#error_log Protokolle/error.log Hinweis;
#error_log Protokolle/error.log-Info;

#pid-Protokolle/nginx.pid;


Ereignisse {
    Arbeiterverbindungen 1024;
}


http {
    mime.types einschließen;
    Standardtyp Anwendung/Oktett-Stream;

    #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 Protokolle/access.log Haupt;

    sendfile an;
    #tcp_nopush ein;

    #keepalive_timeout 0;
    KeepAlive-Timeout 65;

    #gzip ein;

    Server {
        hören Sie 80;
        Servername 192.168.2.231;
        Standort ~/Gruppe([0-9])/M00 {
            ngx_fastdfs_module;
        }
        #Zeichensatz koi8-r;

        #access_log Protokolle/Host.access.log Haupt;

        Standort / {
            Stamm-HTML;
            Index Index.html Index.htm;
        }

        #Fehlerseite 404 /404.html;

        # Server-Fehlerseiten auf die statische Seite /50x.html umleiten
        #
        Fehlerseite 500 502 503 504 /50x.html;
        Standort = /50x.html {
            Stamm-HTML;
        }

        # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht
        #
        #Standort ~ \.php$ {
        # Proxy-Passwort http://127.0.0.1;
        #}

        # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht.
        #
        #Standort ~ \.php$ {
        #Wurzel-HTML;
        # fastcgi_pass 127.0.0.1:9000;
        # fastcgi_index index.php;
        # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
        #fastcgi_params einschließen;
        #}

        # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis
        # stimmt mit nginx überein
        #
        #Standort ~ /\.ht {
        # alles ablehnen;
        #}
    }


    # ein weiterer virtueller Host mit einer Mischung aus IP-, Namens- und Port-basierter Konfiguration
    #
    #server {
    # hören Sie 8000;
    # hören Sie irgendein Name:8080;
    # Servername irgendein Name Alias ​​anderer.Alias;

    # Standort / {
    #Wurzel-HTML;
    # index.html index.htm;
    # }
    #}


    # HTTPS-Server
    #
    #server {
    # 443 SSL abhören;
    # Servername localhost;

    # SSL-Zertifikat cert.pem;
    # SSL-Zertifikatsschlüssel cert.key;

    # ssl_session_cache geteilt:SSL:1m;
    #ssl_session_timeout 5m;

    # ssl_ciphers HOCH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers ein;

    # Standort / {
    #Wurzel-HTML;
    # index.html index.htm;
    # }
    #}
}

Beachten:

Der Listening-Port-Wert 80 sollte http.server_port=80 in /etc/fdfs/storage.conf entsprechen (zuvor auf 80 geändert). Bei einem Wechsel auf einen anderen Port ist eine Vereinheitlichung und Öffnung des Ports in der Firewall erforderlich.

Wenn mehrere Gruppen vorhanden sind, konfigurieren Sie für die Standortkonfiguration den Standort ~/group([0-9])/M00. Wenn keine Gruppen vorhanden sind, ist keine Gruppe erforderlich.

Erstellen Sie einen Softlink im Dateispeicherverzeichnis und verknüpfen Sie ihn mit dem Verzeichnis, in dem die Daten tatsächlich gespeichert sind. Beachten Sie, dass die mehreren Datenverzeichnisse hinter diesem Dateispeicherort automatisch vom System generiert werden.

ln -s /home/Daten/Speicher/Daten /home/Daten/Speicher/Daten/M00

Starten Sie nginx

#Nginx starten
cd /usr/local/nginx/sbin/
./nginx startet direkt /usr/local/nginx/sbin/nginx

#Vim-Startup /etc/rc.local einrichten
/usr/local/nginx/sbin/nginx

# Ausführungsberechtigungen festlegen chmod 755 rc.local

Überprüfen Sie, ob Nginx gestartet ist

ps -ef | grep nginx

OK, denken Sie daran, dass die Sicherheitsgruppen- und Firewall-Einstellungen des Cloud-Dienstes 80, 22122 und 23000 sein müssen. Wenn Sie nicht wissen, wie das geht, lesen Sie bitte die Firewall-Einstellungen im Tencent Cloud Server Tomcat Port Unreachable

Zugriff erfolgreich in der Adressleiste http://192.175.231.128/group1/M00/00/00/rBAACVzBeU2AQBKJAAOHDqS1H9o350.jpg

Fehler melden! Existiert nicht. Es gibt Probleme 110, 120, 119

Beachten:

1. Der FastDFS-Dienstport von Storage2 und Storage3 in derselben Gruppe von Gruppe2 muss konsistent sein: Port=23000.

2. Ein Server kann mehrere Gruppen haben, aber nicht mehrere Speicher in derselben Gruppe. Das Protokoll meldet einen Fehler. Der Grund für den Fehler ist „Hinweis 1“

3. Vor Version 4.05 hat FastDFS libevent intern als HTTP-Server gebunden. Versionen nach Version 4.05 haben den integrierten Web-HTTP-Dienst gelöscht. Der integrierte Web-HTTP-Dienst ist eine Belastung und es ist besser, ihn nicht zu verwenden!

4. Beim Starten des Speicherservers befindet er sich immer in einem Deadlock-Zustand. Beim Starten des Speicherservers stellt der Speicher eine Verbindung zum Tracker-Server her. Wenn keine Verbindung hergestellt werden kann, wird es immer wieder versucht. Der Start ist erst abgeschlossen, wenn die Verbindung erfolgreich ist! Wenn sich 2 Tracker-Server im Cluster befinden,

Wenn einer der Tracker nicht gestartet wird, kann der Speicherserver in einem Deadlock-Zustand verbleiben.

Dies ist das Ende dieses Artikels über die Implementierungsschritte zum Erstellen eines FastDFS-Dateiservers unter Linux. Weitere relevante Inhalte zum Erstellen eines FastDFS-Dateiservers unter Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Erstellen eines Image-Servers mit FastDFS unter Linux

<<:  Analyse der Gründe, warum MySQL-Felddefinitionen nicht null verwenden sollten

>>:  Was Sie beim Gestalten von Webseiten für Mobilgeräte mit kleinem Bildschirm beachten sollten

Artikel empfehlen

Was ist COLLATE in MYSQL?

Vorwort Führen Sie den Befehl show create table &...

MySql legt die angegebenen Benutzerdatenbankansichtsabfrageberechtigungen fest

1. Neuen Benutzer anlegen: 1. Führen Sie eine SQL...

Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben

Dieser Artikel veranschaulicht anhand von Beispie...

Softwaretests – MySQL (VI: Datenbankfunktionen)

1.MySQL-Funktionen 1. Mathematische Funktionen PI...

8 Befehle zur effektiven Verwaltung von Prozessen in Linux

Vorwort Die Rolle des Prozessmanagements: Integri...

Beispiel für die Implementierung des Skelettbildschirms des WeChat-Applets

Inhaltsverzeichnis Was ist ein Skelettbildschirm?...

Beispiel für die Anzeige von Bildjalousien mit reinem CSS

Lassen Sie mich Ihnen zunächst den fertigen Effek...

Der gesamte Prozess der lokalen Konfiguration des Reverse-Proxys über Nginx

Vorwort Nginx ist ein leichtgewichtiger HTTP-Serv...

Eine gängige Technik zur Implementierung von Dreiecken mit CSS (mehrere Methoden)

In manchen Vorstellungsgesprächen werden häufig F...

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

Lösung für das Problem „Linux QT Kit fehlt“ und „Version leer“

Derzeit tritt ein solches Problem auf Bei mir war...