Installation · 15 min read · Jan 23, 2026
Mattermost mit PostgreSQL und Nginx auf CentOS 7 installieren
Mattermost ist eine Open-Source, selbstgehostete Slack-Alternative. Mattermost ist moderne Kommunikation hinter Ihrer Firewall.
Als Alternative zu proprietärem SaaS-Messaging bringt Mattermost alle Ihre Teamkommunikation an einem Ort zusammen, wodurch sie durchsuchbar und überall zugänglich ist.
Mattermost ist “Slack-kompatibel, aber nicht Slack-begrenzt” und unterstützt eine Superset von Slacks eingehenden und ausgehenden Webhook-Integrationen, einschließlich der Kompatibilität mit bestehenden Slack-Integrationen. Von Ihren bestehenden Slack-Teams aus können Sie Benutzer, öffentliche Kanalhistorie und sogar Farbschemata in Mattermost importieren.
Namen, Variablen und Konten, die in diesem HowTo verwendet werden
lokale IP des Servers : 192.168.2.100
FQDN des Servers : mattermost.example.com
Name der Mattermost-Datenbank : mattermost
Benutzer zum Zugriff auf die Mattermost-Datenbank : mmuser
Passwort für mmuser in der Datenbank: DBAss47slX3Voraussetzungen
Dieses Howto erklärt die Installation von Mattermost auf CentOS7 unter Verwendung von PostgreSQL als Datenbank-Backend. Für die Zwecke dieses Leitfadens gehen wir davon aus, dass wir alles auf einem einzelnen Server installieren, aber für erfahrene Benutzer wäre es einfach, die Teile zu zerlegen und jede Komponente (z. B. den Datenbankserver) auf einer anderen Maschine zu installieren. Die Installation wurde mit dem Benutzer root durchgeführt, aber Sie könnten natürlich auch einen sudo-fähigen Benutzer verwenden.
Wir gehen auch davon aus, dass der Server eine IP-Adresse von 192.168.2.100 hat und dass DNS auf mattermost.example.com aufgelöst wird. Ersetzen Sie also überall in diesem HowTo, wo Sie 192.168.2.100 oder mattermost.example.com lesen, durch die IP-Adresse Ihres Servers.
Bevor Sie beginnen können, benötigen Sie eine minimale Installation von CentOS7. Nach der Installation stellen Sie sicher, dass Sie die E-Mail korrekt einrichten (Postfix-Konfiguration), damit Ihr System in der Lage ist, E-Mails zu senden (z. B. über einen Smart Host oder eine ähnliche Lösung).
Bitte führen Sie einige kleine Überprüfungen durch, bevor Sie fortfahren:
Versuchen Sie, eine E-Mail von einem Terminal auf Ihrem Server zu senden:
[root@mattermost ~]echo -en "Subject: Testmail\n\nDies ist ein Test\n" | sendmail [email protected](ersetzen Sie [email protected] durch eine E-Mail-Adresse, an die Ihr Server senden können sollte). Stellen Sie sicher, dass Sie eine E-Mail vom System erhalten haben!
Überprüfen Sie die Namensauflösung für mattermost.example.com
Von einem anderen Computer (nicht dem Server, den wir einrichten möchten) versuchen Sie, mattermost.example.com zu pingen. Sie sollten ein positives Ergebnis erhalten:
C:\>ping mattermost.example.com
Pinging mattermost.witron.com [192.168.2.100] mit 32 Bytes Daten:
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.2.100: Bytes=32 Zeit<1ms TTL=64
Ping-Statistiken für 192.168.2.100:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ungefähre Rundreisezeiten in Millisekunden:
Minimum = 0ms, Maximum = 0ms, Durchschnitt = 0msÜberprüfen Sie die Internetverbindung
Wir werden jetzt das Paket wget installieren (das wir später benötigen).
[root@mattermost ~] yum -y install wgetund verwenden Sie es, um unsere öffentliche IP zu bestimmen. So können wir unsere Internetverbindung überprüfen.
[root@mattermost ~] wget http://ipinfo.io/ip -qO -
46.101.122.124Das Ergebnis sollte Ihre öffentliche IP-Adresse sein.
Überprüfen Sie den Status der Firewall und deaktivieren Sie sie vorerst
Bitte überprüfen Sie, ob Ihre CentOS7-Installation firewalld aktiviert hat. Sie können dies überprüfen, indem Sie eingeben
[root@mattermost ~] systemctl status firewalldWenn es etwas anzeigt wie
Aktiv: aktiv (laufend) seit …
bitte schalten Sie es aus und deaktivieren Sie es mit diesen 2 Befehlen.
[root@mattermost ~] systemctl stop firewalld
[root@mattermost ~] systemctl disable firewalldAm Ende dieses Tutorials finden Sie Anweisungen, wie Sie firewalld wieder aktivieren und wie Sie es korrekt einrichten, um mit Mattermost zu arbeiten.
Wenn Sie alle oben genannten Überprüfungen bestehen oder wissen, dass Sie ein verwendbares System für dieses Tutorial haben, können Sie jetzt fortfahren.
PostgreSQL-Datenbankserver installieren
Wir werden PostgreSQL als Datenbank-Backend für Mattermost verwenden. Installieren Sie es mit dem folgenden Befehl:
[root@mattermost ~] yum -y install postgresql-server postgresql-contribNach der Installation müssen wir die Datenbank initialisieren.
[root@mattermost ~] postgresql-setup initdb
Initialisierung der Datenbank ... OKDann starten Sie PostgreSQL und aktivieren Sie es für den automatischen Start.
[root@mattermost ~]# systemctl start postgresql
[root@mattermost ~]# systemctl enable postgresql
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/postgresql.service zu /usr/lib/systemd/system/postgresql.service.Bitte überprüfen Sie, ob PostgreSQL läuft, indem Sie ausführen.
[root@mattermost ~]# systemctl status postgresqlEs sollte etwas Ähnliches berichten (stellen Sie sicher, dass irgendwo im Text Aktiv: aktiv (laufend) steht).
? postgresql.service - PostgreSQL-Datenbankserver
Geladen: geladen (/usr/lib/systemd/system/postgresql.service; aktiviert; Hersteller-Voreinstellung: deaktiviert)
Aktiv: aktiv (laufend) seit Fri 2016-03-04 11:37:50 CET; 44s ago
Haupt-PID: 17660 (postgres)
CGroup: /system.slice/postgresql.service
??17660 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
??17661 postgres: Logger-Prozess
??17663 postgres: Checkpointer-Prozess
??17664 postgres: Schreibprozess
??17665 postgres: wal-Schreibprozess
??17666 postgres: Autovacuum-Launcher-Prozess
??17667 postgres: Statistiksammler-Prozess
Mar 04 11:37:48 mattermost systemd[1]: Starting PostgreSQL-Datenbankserver...
Mar 04 11:37:50 mattermost systemd[1]: PostgreSQL-Datenbankserver gestartet.
Mar 04 11:37:59 mattermost systemd[1]: PostgreSQL-Datenbankserver gestartet.Erstellen Sie die Mattermost-Datenbank und den Datenbankbenutzer
PostgreSQL hat automatisch einen Benutzer und eine Gruppe mit dem Namen postgres erstellt. Wir verwenden den Benutzer postgres, um eine Verbindung zur Datenbank-Engine herzustellen und eine Datenbank sowie einen Benutzer einzurichten, der darauf zugreifen kann.
Starten Sie eine Eingabeaufforderung als Benutzer postgres:
[root@mattermost ~]# sudo -i -u postgresIhre Eingabeaufforderung ändert sich jetzt zu:
-bash-4.2$Jetzt verbinden wir uns mit dem Datenbankserver.
-bash-4.2$ psql
psql (9.2.15)
Geben Sie "help" für Hilfe ein.
postgres=#Innerhalb der PostgreSQL-Eingabeaufforderung erstellen wir jetzt eine Datenbank mit dem Namen ‘mattermost’.
postgres=# CREATE DATABASE mattermost;
Datenbank erstellenJetzt erstellen wir einen Benutzer ‘ mmuser ‘ mit dem Passwort ‘ DBAss47slX3‘.
postgres=# **CREATE USER mmuser WITH PASSWORD '*DBAss47slX3*';
Rolle erstellenGewähren Sie dem Benutzer Zugriff auf die Mattermost-Datenbank, indem Sie eingeben:
postgres=#GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser; Gewähren postgres=#
Wir können dann die PostgreSQL-Eingabeaufforderung verlassen, indem wir eingeben:
postgres=#\q -bash-4.2$
Und dann die Shell, die wir als Benutzer ‘ postgres ‘ gestartet haben, mit:
-bash-4.2$exit logout [root@mattermost ~]#
Zugriff auf die PostgreSQL-Datenbank von localhost über Benutzername/Passwort erlauben
Später möchte unsere Mattermost-Instanz mit der PostgreSQL-Datenbank kommunizieren und sich mit Benutzername und Passwort authentifizieren. Um dies zu ermöglichen, müssen wir die PostgreSQL-Konfiguration leicht ändern. Öffnen Sie die Datei:
vi /var/lib/pgsql/data/pg_hba.confmit einem Editor wie vi oder nano und ändern Sie die Zeile:
host all all 127.0.0.1/32 identin:
host all all 127.0.0.1/32md5
Speichern Sie die Datei und starten Sie dann PostgreSQL neu.
[root@mattermost ~]#systemctl restart postgresql
Wir sollten überprüfen, ob wir das richtig gemacht haben, indem wir uns mit unserem zuvor erstellten Benutzer und Passwort (verwenden Sie Ihr Passwort, wenn Sie ein anderes auf Ihrem Server verwendet haben) mit dem Datenbankserver verbinden:
[root@mattermost ~]#psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password Passwort für Benutzer mmuser: psql (9.2.15) Geben Sie "help" für Hilfe ein. mattermost=> \q [root@mattermost ~]#
Unser PostgreSQL-Server und die Datenbank sind jetzt bereit für Mattermost!
Mattermost herunterladen und extrahieren
Lassen Sie uns eine Kopie des Mattermost-Servers direkt aus ihrem Github-Repository herunterladen (zum Zeitpunkt der Erstellung dieses Tutorials war Version v2.0.0 die aktuelle Version) mit wget.
[root@mattermost ~]#cd [root@mattermost ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar.gz
Jetzt extrahieren wir das Archiv und legen die extrahierten Dateien an ihrem Zielort ab (in diesem Fall verwenden wir /opt/mattermost).
[root@mattermost ~]#tar -xvzf mattermost.tar.gz [root@mattermost ~]# mv mattermost /opt
Mattermost installieren
Erstellen Sie einen Benutzer, der den Mattermost-Daemon ausführt
Wir werden Mattermost später als Daemon ausführen. Daher richten wir einen neuen Benutzer auf unserem System mit dem Namen ‘ mattermost ‘ ein. Er wird die Mattermost-Instanz später ausführen. Führen Sie den folgenden Befehl aus, um einen Systembenutzer und eine Gruppe ‘ mattermost ‘ zu erstellen:
[root@mattermost ~]#useradd -r mattermost -U -s /sbin/nologin
Erstellen Sie einen Datenordner für Mattermost
Mattermost möchte einige seiner Daten, z. B. hochgeladene Dateien usw., in einem Ordner speichern. Daher müssen wir diesen Ordner erstellen. Er kann überall auf der Festplatte sein, muss jedoch für den Benutzer ‘ mattermost ‘ zugänglich sein. Ich habe mich entschieden, ‘/opt/mattermost/data’ zu verwenden. Erstellen Sie den Ordner mit dem folgenden Befehl:
[root@mattermost ~]#mkdir -p /opt/mattermost/data
Setzen Sie den Besitzer des Mattermost-Verzeichnisses
Jetzt setzen wir die Gruppe und den Besitzer des Mattermost-Verzeichnisses auf unseren zuvor erstellten Benutzer und die Gruppe:
[root@mattermost ~]#chown -R mattermost:mattermost /opt/mattermost [root@mattermost ~]# chmod -R g+w /opt/mattermost**
Konfigurieren Sie die Datenbankverbindung für Mattermost
Um Mattermost zu sagen, wie es sich mit unserer PostgreSQL-Datenbank verbinden soll, müssen wir die Konfigurationsdatei bearbeiten:
*/opt/mattermost/config/config.json*Bitte finden Sie den Abschnitt ‘ SqlSettings ‘ und ändern Sie ihn nach unseren Bedürfnissen:
VORHER
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",
"DataSourceReplicas": [],
"MaxIdleConns": 10,
"MaxOpenConns": 10,
"Trace": false,
"AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"
},NACHHER
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mmuser:[email protected]:5432/mattermost?sslmode=disable&connect_timeout=10",
"DataSourceReplicas": [],
"MaxIdleConns": 10,
"MaxOpenConns": 10,
"Trace": false,
"AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"
},Sie können den AtRestEncryptKey so belassen, wie er ist!
Konfigurieren Sie die E-Mail-Konnektivität für Mattermost
Wieder müssen wir die Konfigurationsdatei bearbeiten
*/opt/mattermost/config/config.json*Suchen Sie den Abschnitt ‘EmailSettings’ und ändern Sie ihn nach unseren Bedürfnissen:
VORHER
"EmailSettings": {
"EnableSignUpWithEmail": true,
"EnableSignInWithEmail": true,
"EnableSignInWithUsername": false,
"SendEmailNotifications": false,
"RequireEmailVerification": false,
"FeedbackName": "",
"FeedbackEmail": "",
"SMTPUsername": "",
"SMTPPassword": "",
"SMTPServer": "",
"SMTPPort": "",
"ConnectionSecurity": "",
"InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",
"PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",
"SendPushNotifications": false,
"PushNotificationServer":
}, NACHHER
"EmailSettings": {
"EnableSignUpWithEmail": true,
"EnableSignInWithEmail": true,
"EnableSignInWithUsername": false,
"SendEmailNotifications": false,
"RequireEmailVerification": false,
"FeedbackName": "",
"FeedbackEmail": "",
"SMTPUsername": "",
"SMTPPassword": "",
"SMTPServer": "127.0.0.1",
"SMTPPort": "25",
"ConnectionSecurity": "",
"InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS",
"PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL",
"SendPushNotifications": false,
"PushNotificationServer": ""
},Wir verwenden 127.0.0.1 und Port 25, weil wir unsere lokale Postfix-Installation verwenden, die bereits konfiguriert ist, um E-Mails nach außen senden zu können. Wenn Ihre Konfiguration hier anders ist, müssen Sie die richtigen Werte festlegen!
Konfigurieren Sie Mattermost so, dass es nur auf der internen Schnittstelle (127.0.0.1) hört
Standardmäßig wird die Mattermost-Serverinstanz auf allen Schnittstellen am Port 8065 (:8065) hören. Da wir einen Nginx-Server vor Mattermost setzen möchten, ändern wir dieses Verhalten, sodass es nur auf localhost (127.0.0.1:8065) hört.
Ändern Sie einfach die Zeile
"ListenAddress": ":8065",in
"ListenAddress": "127.0.0.1:8065",in der config.json-Datei.
Testen Sie den Mattermost-Server
Wir können jetzt testen, ob unser Mattermost-Server starten würde, indem wir ihn von der Befehlszeile aus ausführen. Bitte stellen Sie sicher, dass Sie dies als Benutzer ‘mattermost’ tun. Wenn Sie dies versehentlich als ‘root’ getan haben, müssen Sie die Berechtigungen für den Mattermost-Ordner erneut festlegen!
[root@mattermost ~]# su - mattermost -s /bin/bash
Letzte Anmeldung: Fri Mar 4 12:47:52 CET 2016 auf pts/0
su: Warnung: kann das Verzeichnis nicht ändern zu /home/mattermost: Kein solches Verzeichnis
-bash-4.2$Jetzt wechseln Sie in das Mattermost-Installationsverzeichnis:
-bash-4.2$ cd /opt/mattermost/bin/Und führen Sie Mattermost von der Befehlszeile aus:
-bash-4.2$ ./platformDie Ausgabe sollte ähnlich aussehen:
[2016/03/04 13:00:10 CET] [INFO] Geladene Systemübersetzungen für 'en' aus '/opt/mattermost/i18n/en.json'
[2016/03/04 13:00:10 CET] [INFO] Aktuelle Version ist 2.0.0 (5950/Sat Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)
[2016/03/04 13:00:10 CET] [INFO] Enterprise aktiviert: false
[2016/03/04 13:00:10 CET] [INFO] Aktuelles Arbeitsverzeichnis ist /opt/mattermost/bin
[2016/03/04 13:00:10 CET] [INFO] Konfigurationsdatei geladen aus /opt/mattermost/config/config.json
[2016/03/04 13:00:10 CET] [INFO] Server wird initialisiert...
[2016/03/04 13:00:10 CET] [INFO] Pingen der SQL-Masterdatenbank
[2016/03/04 13:00:10 CET] [INFO] Pingen der SQL-Replikat-0-Datenbank
[2016/03/04 13:00:10 CET] [DEBG] Löschen aller ungenutzten Vorabversionen
[2016/03/04 13:00:10 CET] [INFO] Das Datenbankschema wurde auf Version 2.0.0 gesetzt
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Benutzer-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Team-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Kanal-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Post-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Websocket-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Datei-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Befehls-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Admin-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der OAuth-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Webhook-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Präferenz-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Lizenz-API-Routen
[2016/03/04 13:00:10 CET] [DEBG] Parsing der Servervorlagen unter /opt/mattermost/api/templates/
[2016/03/04 13:00:10 CET] [DEBG] Initialisierung der Webrouten
[2016/03/04 13:00:10 CET] [DEBG] Verwendung des statischen Verzeichnisses unter /opt/mattermost/web/static/
[2016/03/04 13:00:10 CET] [DEBG] Parsing der Vorlagen unter /opt/mattermost/web/templates/
[2016/03/04 13:00:10 CET] [INFO] Server wird gestartet...
[2016/03/04 13:00:10 CET] [INFO] Server hört auf 127.0.0.1:8065
[2016/03/04 13:00:10 CET] [INFO] RateLimiter ist aktiviert
[2016/03/04 13:00:10 CET] [DEBG] Überprüfung auf Sicherheitsupdates von Mattermost
[2016/03/04 13:00:10 CET] [EROR] Fehler beim Abrufen von Sicherheitsupdateinformationen von Mattermost.Stoppen Sie den Mattermost-Server mit Strg+C
und verlassen Sie dann die Shell, die wir als Benutzer ‘mattermost’ gestartet haben, mit:
-bash-4.2$ exit
logout
[root@mattermost ~]#Wenn Ihre Mattermost-Instanz nicht startet, lesen Sie die Ausgabe sorgfältig durch. Ich hatte selbst viele Probleme, weil ich ein einfaches Komma in der config.json vergessen hatte. Stellen Sie auch sicher, dass Sie keine Sonderzeichen im Passwort Ihres Datenbankbenutzers verwenden, insbesondere kein ‘@’-Zeichen. Das hat mich am Anfang verrückt gemacht!
Wenn Sie den obigen Befehl versehentlich als ‘ root ‘ ausgeführt haben und das auch funktioniert, müssen Sie die Berechtigungen für den Mattermost-Ordner erneut festlegen. Verwenden Sie diesen Befehl, wenn Sie auf diesen Fehler gestoßen sind:
[root@mattermost ~]# chown -R mattermost:mattermost /opt/mattermostWenn alles gut gelaufen ist, können wir jetzt fortfahren.
Mattermost als Daemon einrichten
Um Mattermost als Daemon einzurichten, erstellen Sie eine Datei
*/etc/systemd/system/mattermost.service*mit folgendem Inhalt:
[Unit]
Beschreibung=Mattermost
Nach=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
Benutzer=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
[Install]
WantedBy=multi-user.targetLaden Sie dann die Daemon-Dateien mit:
[root@mattermost ~]# systemctl daemon-reloadWir können jetzt starten/stoppen/aktivieren/deaktivieren diesen Dienst, wie wir es gewohnt sind.
Also lassen Sie uns Mattermost starten, seinen Status abrufen und es dann als Dienst (Autostart) aktivieren.
Starten Sie den Mattermost-Daemon
[root@mattermost ~]# systemctl start mattermost.serviceÜberprüfen Sie den Status von Mattermost
[root@mattermost ~]# systemctl status mattermost.service
? mattermost.service - Mattermost
Geladen: geladen (/etc/systemd/system/mattermost.service; deaktiviert; Hersteller-Voreinstellung: deaktiviert)
Aktiv: aktiv (laufend) seit Fri 2016-03-04 14:03:40 CET; 4s ago
Haupt-PID: 18573 (plattform)
CGroup: /system.slice/mattermost.service
??18573 /opt/mattermost/bin/platform
...
...Stellen Sie sicher, dass es aktiv (laufend) ist!
Aktivieren Sie den Daemon für den Autostart
[root@mattermost ~]# systemctl enable mattermost.service
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/mattermost.service zu /etc/systemd/system/mattermost.service.Nur um sicherzugehen, machen wir einen Test, ob Mattermost auf 127.0.0.1:8065 hört, indem wir den folgenden Befehl ausführen:
[root@mattermost config]# curl -s "http://127.0.0.1:8065" | grep -b "2015 Mattermost"Wir sollten eine einzelne Zeile erhalten, die ‘2015 Mattermost’ enthält.
11343: Wenn ja, können wir sicher sein, dass die Mattermost-Serverinstanz läuft und wir fortfahren können.
SELinux-bezogene Berechtigungsprobleme beheben
Unter CentOS7 ist SELinux standardmäßig aktiviert. Wir könnten es ganz ausschalten, aber es ist besser, es neu zu konfigurieren und unserem Mattermost-Server die Ausführung zu erlauben.
Geben Sie einfach die folgenden 2 Befehle ein, um die SELinux-Berechtigungen zu beheben:
[root@mattermost config]# chcon -Rt httpd_sys_content_t /opt/mattermost/
[root@mattermost config]# setsebool -P httpd_can_network_connect 1Nginx-Server einrichten
Wir werden einen Nginx-Server vor unserer Mattermost-Serverinstanz platzieren.
Die Hauptvorteile sind:
- Portmapping :80 auf :8065
- Standardanforderungsprotokolle
- mehr Optionen beim späteren Wechsel zu SSL
Epel-Repository aktivieren
Nginx ist nicht in den Standard-Repositorys von CentOS enthalten. Daher müssen wir zuerst das epel-Repository aktivieren. Dies ist eine einfache Aufgabe, geben Sie einfach ein:
[root@mattermost config]# yum -y install epel-release && yum updateNginx installieren
Nachdem wir das epel-release aktiviert haben, können wir Nginx einfach mit folgendem Befehl installieren:
[root@mattermost config]# yum -y install nginxDies installiert Nginx und alle seine Abhängigkeiten.
Nginx konfigurieren
Es gibt viele Möglichkeiten, Nginx zu konfigurieren. Dieses Tutorial zeigt nur, wie man eine sehr einfache Einrichtung für Nginx erstellt, die nur unseren Mattermost-Server auf Port 80 hostet.
Ändern Sie die Standardkonfigurationsdatei von Nginx
Erstellen Sie eine Sicherungskopie der aktuellen nginx.conf, indem Sie ausführen:
[root@mattermost config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bakErsetzen Sie dann /etc/nginx/nginx.conf durch diesen Inhalt:
# Für weitere Informationen zur Konfiguration siehe:
# * Offizielle englische Dokumentation: http://nginx.org/en/docs/
# * Offizielle russische Dokumentation: http://nginx.org/ru/docs/
Benutzer nginx;
Arbeiterprozesse automatisch;
Fehlerprotokoll /var/log/nginx/error.log;
PID /run/nginx.pid;
Ereignisse {
Arbeiterverbindungen 1024;
}
http {
Protokollformat main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Zugriffsprotokoll /var/log/nginx/access.log main;
sendfile ein;
tcp_nopush ein;
tcp_nodelay ein;
keepalive_timeout 65;
types_hash_max_size 2048;
einschließen /etc/nginx/mime.types;
standard_type application/octet-stream;
# Laden Sie modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d.
# Siehe http://nginx.org/en/docs/ngx_core_module.html#include
# für weitere Informationen.
einschließen /etc/nginx/conf.d/*.conf;
server {
server_name mattermost.example.com;
standort / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Verbindung "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:8065;
}
}
}Bitte stellen Sie sicher, dass Sie den richtigen Hostnamen verwenden, wie zuvor in diesem Dokument angegeben.
Um zu überprüfen, dass wir keine Syntaxfehler in unseren Konfigurationsdateien haben, führen Sie den folgenden Befehl aus, um die Syntax zu überprüfen:
[root@mattermost config]# nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
ginx: Konfigurationsdatei /etc/nginx/nginx.conf Test erfolgreichStarten und aktivieren Sie Nginx als Daemon
Starten Sie Nginx
[root@mattermost config]# systemctl start nginxÜberprüfen Sie den Status
[root@mattermost config]# systemctl status nginxStellen Sie sicher, dass es mindestens eine Zeile ausgibt, die zeigt:
...
Aktiv: aktiv (laufend)...
...Aktivieren Sie es als Daemon
[root@mattermost config]# systemctl enable nginx
Symlink erstellt von /etc/systemd/system/multi-user.target.wants/nginx.service zu /usr/lib/systemd/system/nginx.service.Wenn alles gut gelaufen ist, sollten Sie jetzt eine funktionierende Mattermost-Installation haben, die hinter Nginx läuft. Überprüfen Sie dies, indem Sie die folgende URL in Ihrem Browser öffnen:
Der Anmeldebildschirm von Mattermost sollte erscheinen!

Jetzt können Sie fortfahren, Ihre Mattermost-Installation einzurichten, indem Sie Ihre E-Mail-Adresse eingeben und ein Konto erstellen.
Firewalld
Früher in diesem Tutorial haben wir firewalld deaktiviert. Wenn Sie es wieder aktivieren möchten, aber Port 80 offen halten möchten (den wir derzeit für Mattermost über Nginx verwenden), tun Sie einfach Folgendes:
Starten und reaktivieren Sie Firewalld
[root@mattermost config]# systemctl start firewalld
[root@mattermost config]# systemctl enable firewalld
Symlink erstellt von /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service zu /usr/lib/systemd/system/firewalld.service.
Symlink erstellt von /etc/systemd/system/basic.target.wants/firewalld.service zu /usr/lib/systemd/system/firewalld.service.Öffnen Sie Port 80 in der Firewall
[root@mattermost config]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Erfolg
[root@mattermost config]# firewall-cmd --reload
ErfolgJetzt sollte Ihre Mattermost-Installation zugänglich sein, auch wenn Firewalld läuft!
Zusammenfassung
Ich hoffe, Sie fanden dieses Tutorial nützlich und es hat funktioniert. In einer Produktionsumgebung sollten Sie Zertifikate für Ihre Mattermost-Website erstellen/verwenden und https über Nginx aktivieren. Dies kann leicht erreicht werden, indem Sie dieses Howto leicht modifizieren.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.