Mattermost ist eine selbstgehostete Open-Source-Slack-Alternative. Mattermost ist moderne Kommunikation hinter Ihrer Firewall.
Als Alternative zu proprietärem SaaS-Messaging bringt Mattermost Ihre gesamte Teamkommunikation an einen Ort und macht sie überall durchsuchbar und zugänglich.
Mattermost ist „Slack-kompatibel, nicht Slack-beschränkt“ und unterstützt eine Obermenge der eingehenden und ausgehenden Webhook-Integrationen von Slack, einschließlich der Kompatibilität mit bestehenden Slack-Integrationen. Aus Ihren bestehenden Slack-Teams können Sie Benutzer, den Verlauf öffentlicher Kanäle und sogar Farbeinstellungen für Themen 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 für den Zugriff auf die mattermost-Datenbank:mmuser
Passwort für Benutzer innerhalb der Datenbank: DBAss47slX3
Voraussetzungen
Dieses Howto erklärt die Installation von Mattermost auf CentOS7 mit PostgreSQL als Datenbank-Backend. Für die Zwecke dieses Handbuchs gehen wir davon aus, dass wir alles auf einem einzigen Server installieren, aber für erfahrene Benutzer wäre es einfach, die Teile zu zerlegen und jede Komponente (z. B. den Datenbankserver) auf einem anderen Computer zu installieren. Die Installation wurde mit dem Benutzer root durchgeführt aber Sie könnten natürlich einen sudo-aktivierten Benutzer verwenden , auch.
Wir gehen außerdem davon aus, dass der Server eine IP-Adresse von 192.168.2.100 hat und dieses DNS wird zu mattermost.example.com aufgelöst . Also überall in diesem HowTo, wo Sie 192.168.2.100 lesen oder mattermost.example.com Ersetzen Sie es durch die IP-Adresse Ihres Servers.
Bevor Sie beginnen können, benötigen Sie eine Mindestinstallation von CentOS7. Stellen Sie nach der Installation sicher, dass Sie E-Mail richtig eingerichtet haben (Postfix-Konfiguration), damit Ihr System E-Mails senden kann (z. B. über einen Smarthost 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:
[[email protected] ~]echo -en "Betreff:Testmail\n\nDies ist ein Test\n" | sendmail [E-Mail-geschützt]
(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!
Namensauflösung für mattermost.example.com überprüfen
Versuchen Sie von einem anderen Computer (nicht dem Server, den wir einzurichten versuchen), 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 Byte 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 Roundtrip-Zeiten in Millisekunden:
/>Minimum =0ms, Maximum =0ms, Durchschnitt =0ms
Internetverbindung überprüfen
Wir werden nun das Paket wget installieren (das wir später benötigen).
[[email protected] ~] yum -y install wget
und verwenden Sie es, um unsere öffentliche IP zu bestimmen. Damit wir unsere Internetverbindung prüfen können.
[[email protected] ~] wget http://ipinfo.io/ip -qO -
46.101.122.124
Das Ergebnis sollte Ihre öffentliche IP-Adresse sein.
Überprüfen Sie den Firewall-Status und deaktivieren Sie ihn vorerst
Bitte prüfen Sie, ob Ihre CentOS7-Installation über eine Firewall verfügt aktiviert. Sie können dies überprüfen, indem Sie
eingeben[[email protected] ~] systemctl status firewalld
Wenn es so etwas wie
anzeigtAktiv:aktiv (läuft) seit ...
Bitte schalten Sie es aus und deaktivieren Sie es mit diesen 2 Befehlen.
[[email protected] ~] systemctl stop firewalld
[[email protected] ~] systemctl disable firewalld
Am Ende dieses Tutorials finden Sie Anweisungen zum erneuten Aktivieren von firewalld und zum korrekten Einrichten für die Arbeit mit Mattermost.
Wenn Sie alle oben genannten Prüfungen bestehen oder wissen, dass Sie ein brauchbares 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:
[[email protected] ~] yum -y install postgresql-server postgresql-contrib
Nach der Installation müssen wir die Datenbank initialisieren.
[[email protected] ~] postgresql-setup initdb
Datenbank wird initialisiert ... OK
Starten Sie dann PostgreSQL und aktivieren Sie es für den automatischen Start.
[[email protected] ~]# systemctl start postgresql
[[email protected] ~]# systemctl aktiviert postgresql
Symlink von /etc/systemd/system/multi-user.target.wants/postgresql.service zu /usr/lib/systemd/system/postgresql.service erstellt.
Bitte vergewissern Sie sich, dass PostgreSQL läuft, indem Sie.
ausführen[[email protected] ~]# Systemctl-Status postgresql
Es sollte etwas Ähnliches melden (stellen Sie sicher, dass Active:active (running) vorhanden ist irgendwo im Text).
Geladen:geladen (/usr/lib/systemd/system/postgresql.service; aktiviert; Herstellervoreinstellung:deaktiviert)
Aktiv:aktiv (läuft) seit Fr 04.03.2016 11:37:50 MEZ; Vor 44 Sekunden
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:Writer-Prozess
??17665 Postgres:Wal Writer-Prozess
?? />??17666 Postgres:Autovacuum Launcher Process
??17667 Postgres:Stats Collector Process
Mär 04 11:37:48 Mattermost Systemd[1]:PostgreSQL-Datenbankserver wird gestartet...
März 04 11:37:50 Mattermost Systemd[1]:PostgreSQL-Datenbankserver gestartet.
März 04 11:37:59 Mattermost Systemd[1]:PostgreSQL-Datenbankserver gestartet.
Mattermost-Datenbank und Datenbankbenutzer erstellen
PostgreSQL hat automatisch einen Benutzer und eine Gruppe mit dem Namen postgres erstellt . Wir verwenden den Benutzer postgres um sich mit der Datenbank-Engine zu verbinden und eine Datenbank und einen Benutzer einzurichten, der darauf zugreifen kann.
Starten Sie eine Eingabeaufforderung als Benutzer postgres :
[[email protected] ~]# sudo -i -u postgres
Ihre Eingabeaufforderung ändert sich nun zu:
-bash-4.2$
Verbinden wir uns jetzt mit dem Datenbankserver.
-bash-4.2$ psql
psql (9.2.15)
Geben Sie "help" ein, um Hilfe zu erhalten.
postgres=#
Innerhalb des PostgreSQL-Prompts erstellen wir nun eine Datenbank mit dem Namen ‚mattermost‘.
postgres=# DATENBANK ERSTELLEN wichtig;
DATENBANK ERSTELLEN
Jetzt erstellen wir einen Benutzer 'mmuser ' mit dem Passwort 'DBAss47slX 3'.
postgres=# ERSTELLE BENUTZER mmuser MIT PASSWORT 'DBAss47slX3 ';
ROLLE ERSTELLEN
Gewähren Sie dem Benutzer Zugriff auf die Mattermost-Datenbank, indem Sie Folgendes eingeben:
postgres=# GEWÄHRE ALLE PRIVILEGIEN AUF DER DATENBANK, was am wichtigsten für mmuser ist;
GRANT
postgres=#
Wir können dann die PostgreSQL-Eingabeaufforderung verlassen indem Sie Folgendes eingeben:
postgres=# \q
-bash-4.2$
Und verlassen Sie dann die Shell, die wir als Benutzer 'postgres gestartet haben ' mit.
-bash-4.2$ beenden
abmelden
[[email protected] ~]#
Zugriff auf die PostgreSQL-Datenbank von localhost über Benutzername/Passwort zulassen
Später möchte unsere wichtigste Instanz mit der PostgreSQL-Datenbank sprechen und sich mit Benutzername und Passwort authentifizieren. Um dies zu ermöglichen, müssen wir die PostgreSQL-Konfiguration geringfügig ändern. Öffnen Sie die Datei:
vi /var/lib/pgsql/data/pg_hba.conf
mit einem Editor wie vi oder nano und ändern Sie die Zeile:
host all all 127.0.0.1/32 ident
zu:
host all all 127.0.0.1/32 md5
Speichern Sie die Datei und starten Sie Postgresql neu.
[[email protected] ~]# systemctl reset postgresql
Wir sollten überprüfen, ob wir das richtig gemacht haben, indem wir uns mit unserem zuvor erstellten Benutzer und Passwort mit dem Datenbankserver verbinden (verwenden Sie Ihr Passwort, wenn Sie auf Ihrem Server ein anderes verwendet haben):
[[email protected] ~]# psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password
Passwort für Benutzer mmuser:
psql (9.2.15)
Geben Sie "help" ein, um Hilfe zu erhalten.
mattermost=> \q
[[email protected] ~]#
Unser PostgreSQL-Server und unsere 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.
[[email protected] ~]# cd
[[email protected] ~]# wget -q "https://github.com/mattermost/platform/releases/download/v2.0.0/mattermost.tar.gz" -O mattermost.tar .gz
Lassen Sie uns nun das Archiv extrahieren und die extrahierten Dateien an ihrem Zielort ablegen (in diesem Fall verwenden wir /opt/mattermost).
[[email protected] ~]# tar -xvzf mattermost.tar.gz
[[email protected] ~]# mv mattermost /opt
Installieren von Mattermost
Erstellen Sie einen Benutzer, der den Mattermost-Daemon ausführt
Wir werden Mattermost später als Dämon ausführen. Dazu richten wir auf unserem System einen neuen Benutzer mit dem Namen 'mattermost ein '. Es wird später die wichtigste Instanz ausführen. Führen Sie den folgenden Befehl aus, um einen Systembenutzer und eine Gruppe „mattermost“ zu erstellen ':
[[email protected] ~]# useradd -r mattermost -U -s /sbin/nologin
Erstellen Sie einen Datenspeicherordner für Mattermost
Mattermost möchte einige seiner Daten speichern, z. hochgeladene Dateien etc. in einem Ordner. Also müssen wir diesen Ordner erstellen. Es kann sich irgendwo auf der Festplatte befinden, muss aber für den Benutzer 'mattermost zugänglich sein '. Ich habe mich für '/opt/mattermost/data' entschieden. Erstellen Sie den Ordner mit dem folgenden Befehl:
[[email protected] ~]# mkdir -p /opt/mattermost/data
Eigentümer des Mattermost-Verzeichnisses festlegen
Jetzt setzen wir die Gruppe und den Eigentümer des wichtigsten Verzeichnisses auf unseren zuvor erstellten Benutzer und unsere Gruppe:
[[email protected] ~]# chown -R mattermost:mattermost /opt/mattermost
[[email protected] ~]# chmod -R g+w /opt/mattermost
Konfigurieren Sie die Datenbankverbindung für mattermost
Um Mattermost mitzuteilen, wie es sich mit unserer PostgreSQL-Datenbank verbinden soll, müssen wir seine Konfigurationsdatei bearbeiten:
/opt/mattermost/config/config.json
Bitte finden Sie den Abschnitt 'SqlSettings ' und an unsere Bedürfnisse anpassen:
VOR
"SqlSettings":{
"DriverName":"mysql",
"DataSource":"mmuser:[email protected](dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8",
"DataSourceReplicas":[],
"MaxIdleConns":10,
"MaxOpenConns":10,
"Trace":false,
"AtRestEncryptKey":" 7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg"
},
NACH
"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 beibehalten so wie es ist!
Konfigurieren Sie die E-Mail-Konnektivität für mattermost
Auch hier müssen wir die Konfigurationsdatei bearbeiten
/opt/mattermost/config/config.json
Suchen Sie den Abschnitt „E-Mail-Einstellungen“ und ändern Sie ihn gemäß unseren Anforderungen:
VOR
"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":
},
NACH
"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 so konfiguriert ist, dass sie E-Mails nach außen senden kann. Wenn Ihr Setup hier abweicht, müssen Sie die richtigen Werte einstellen!
Konfiguriere Mattermost so, dass es nur auf der internen Schnittstelle (127.0.0.1) lauscht
Standardmäßig lauscht die Mattermost-Serverinstanz auf allen Schnittstellen auf Port 8065 (:8065). Da wir einen Nginx-Server vor Mattermost setzen wollen, ändern wir dieses Verhalten so, dass er nur auf localhost (127.0.0.1:8065) lauscht.
Ändern Sie einfach die Zeile
"ListenAddress":":8065",
zu
"ListenAddress":"127.0.0.1 :8065",
in der Datei config.json.
Testen Sie den Mattermost-Server
Wir können jetzt testen, ob unser Mattermost-Server starten würde, indem wir ihn über die Befehlszeile ausführen. Bitte stellen Sie sicher, dass Sie dies als Benutzer 'mattermost' tun. Wenn Sie dies aus Versehen als 'root' gemacht haben, müssen Sie die Berechtigungen für den wichtigsten Ordner erneut korrigieren!
[[email protected] ~]# su - mattermost -s /bin/bash
Letzte Anmeldung:Freitag, 4. März 12:47:52 MEZ 2016 auf pts/0
su:Warnung:Verzeichnis kann nicht nach /home/mattermost geändert werden:Keine solche Datei oder Verzeichnis
-bash-4.2$
Wechseln Sie nun in das wichtigste Installationsverzeichnis:
-bash-4.2$ cd /opt/mattermost/bin/
Und führen Sie Mattermost von der Befehlszeile aus:
-bash-4.2$ ./platform
Die Ausgabe sollte etwa so aussehen:
[2016/03/04 13:00:10 CET] [INFO] Geladene Systemübersetzungen für 'en' von '/opt/mattermost/i18n/en.json'
[2016/03/04 13 :00:10 MEZ] [INFO] Aktuelle Version ist 2.0.0 (5950/Sa Feb 13 15:42:01 UTC 2016/c71c5cef632c7dc68072167c6fe091a60835fa02)
[04.03.2016 13:00:10 MEZ] [INFO ] Enterprise Enabled:false
[04.03.2016 13:00:10 MEZ] [INFO] Aktuelles Arbeitsverzeichnis ist /opt/mattermost/bin
[04.03.2016 13:00:10 MEZ] [INFO] Geladene Konfigurationsdatei aus /opt/mattermost/config/config.json
[04.03.2016 13:00:10 MEZ] [INFO] Server wird initialisiert...
[ 04.03.2016 13:00:10 MEZ] [INFO] SQL-Master-Datenbank anpingen
[04.03.2016 13:00:10 MEZ] [INFO] SQL-Replica-0-Datenbank anpingen
[ 04.03.2016 13:00:10 MEZ] [DEBG] Löschen aller ungenutzten Funktionen der Vorabversion
[04.03.2016 13:00:10 MEZ] [INFO] Das Datenbankschema wurde auf Version gesetzt 2.0.0
[04.03.2016 13:00:10 MEZ] [DEBG] Benutzer-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Team-API wird initialisiert Strecken
[04.03.2016 13:00:10 MEZ] [DEBG] Kanal-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Post-API-Routen werden initialisiert
[04.03.2016 13:00:10 MEZ] [DEBG] Web-Socket-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Datei-API-Routen initialisieren
[ 04.03.2016 13:00:10 MEZ] [DEBG] Befehls-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Admin-API-Routen initialisieren
[2016/ 04.03. 13:00:10 MEZ] [DEBG] OAuth-API-Routen initialisieren
[04.03.2016 13:00:10 MEZ] [DEBG] Webhook-API-Routen initialisieren
[03.2016/ 04 13:00:10 MEZ] [DEBG] Initialisierung von Präferenz-API-Routen
[04.03.2016 13:00:10 MEZ] [DEBG] Initialisierung von Lizenz-API-Routen
[04.03.2016 13 :00:10 CET] [DEBG] Parsen von Server-Templates unter /opt/mattermost/api/templates/
[04.03.2016 13:00:10 CET] [DEBG] Initialisieren von Webrouten
[ 04.03.2016 13:00:10 MEZ] [DEBG] Verwendung des statischen Verzeichnisses unter /opt/mattermost/web/static/
[04.03.2016 13:00:10 MEZ] [DEBG] Parsing-Vorlagen unter /opt/mattermost/web/templates/
[04.03.2016 13:00:10 MEZ] [INFO] Server wird gestartet...
[04.03.2016 13:00:10 CET] [INFO] Server hört auf 127.0.0.1:8065
[04.03.2016 13:00:10 CET] [INFO] RateLimiter ist aktiviert
[04.03.2016 13:00 :10 CET] [DEBG] Suche nach Sicherheitsupdate von Mattermost
[04.03.2016 13:00:10 CET] [EROR] Fehler beim Abrufen von Sicherheitsupdate-Informationen 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$ beenden
abmelden
[[email protected] ~]#
Wenn Ihre Mattermost-Instanz nicht startet, lesen Sie die Ausgabe sorgfältig durch. Ich hatte selbst viele Probleme, weil ich ein einfaches Komma in config.json vergessen habe. Stellen Sie außerdem sicher, dass Sie keine Sonderzeichen in Ihrem dbuser-Passwort verwenden, insbesondere kein '@ ' Schild. Das hat mich am Anfang verrückt gemacht!
Wenn Sie den obigen Befehl versehentlich als 'root ausgeführt haben ' und das könnte auch funktionieren, müssen Sie die Berechtigungen für den wichtigsten Ordner neu festlegen. Verwenden Sie diesen Befehl, wenn Sie auf diesen Fehler gestoßen sind:
[[email protected] ~]# chown -R mattermost:mattermost /opt/mattermost
Wenn alles geklappt hat, können wir jetzt fortfahren.
Richten Sie Mattermost als Daemon ein
Um Mattermost als Daemon einzurichten, erstellen Sie eine Datei
/etc/systemd/system/mattermost.service
mit folgendem Inhalt:
[Unit]
Description=Mattermost
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/ opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
[Installieren]
WantedBy=multi-user.target
Laden Sie dann die Daemon-Dateien neu mit:
[[email protected] ~]# systemctl daemon-reload
Wir können jetzt starten/stoppen/aktivieren/deaktivieren diesen Service, wie wir es gewohnt sind.
Lassen Sie uns also Mattermost starten, seinen Status abrufen und ihn dann als Dienst aktivieren (Autostart).
Mattermost-Daemon starten
[[email protected] ~]# systemctl start mattermost.service
Wichtigsten Status prüfen
[[email protected] ~]# systemctl status mattermost.service
? mattermost.service - Mattermost
Geladen:geladen (/etc/systemd/system/mattermost.service; deaktiviert; Herstellervoreinstellung:deaktiviert)
Aktiv:aktiv (läuft) seit Fr 04.03.2016 14:03:40 MEZ; Vor 4s
Haupt-PID:18573 (Plattform)
CGroup:/system.slice/mattermost.service
??18573 /opt/mattermost/bin/platform
...
...
Stellen Sie sicher, dass es aktiv (läuft) ist !
Dämon für Autostart aktivieren
[[email protected] ~]# systemctl enable mattermost.service
Symlink von /etc/systemd/system/multi-user.target.wants/mattermost.service zu /etc/systemd/system/mattermost.service erstellt.
Jetzt machen wir zur Sicherheit einen Test, ob Mattermost auf 127.0.0.1:8065 lauscht, indem wir den folgenden Befehl ausführen:
[[email protected] 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 können fortfahren.
Beheben Sie SELinux-bezogene Berechtigungsprobleme
Auf CentOS7 ist SELinux standardmäßig aktiviert. Wir könnten es ganz ausschalten, aber es ist besser, es neu zu konfigurieren und unseren Mattermost-Server ausführen zu lassen.
Geben Sie einfach die folgenden 2 Befehle ein, um die SELinux-Berechtigungen zu reparieren:
[[email protected] config]# chcon -Rt httpd_sys_content_t /opt/mattermost/
[[email protected] config]# setsebool -P httpd_can_network_connect 1
Nginx-Server einrichten
Wir werden einen Nginx-Server vor unsere Mattermost-Serverinstanz stellen.
Die Hauptvorteile sind:
- Portzuordnung :80 zu :8065
- Standardanforderungsprotokolle
- weitere Optionen bei späterer Umstellung auf SSL
Epel-Repository aktivieren
Nginx befindet sich nicht in den Standard-Repositories von CentOS. Also müssen wir zuerst das Epel-Repository aktivieren. Dies ist eine einfache Aufgabe, geben Sie einfach ein:
[[email protected] config]# yum -y install epel-release &&yum update
nginx installieren
Nachdem wir das Epel-Release aktiviert haben, können wir nginx einfach mit dem folgenden Befehl installieren:
[[email protected] config]# yum -y install nginx
Dies installiert Nginx und alle seine Abhängigkeiten.
nginx konfigurieren
Es gibt viele Möglichkeiten, Nginx zu konfigurieren. Dieses Tutorial zeigt nur, wie man ein sehr einfaches Setup für Nginx erstellt, das nur unseren Mattermost-Server auf Port 80 hostet.
Nginx-Standardkonfigurationsdatei ändern
Erstellen Sie eine Sicherungskopie der aktuellen nginx.conf durch Ausführen von:
[[email protected] config]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Ersetzen Sie dann /etc/nginx/nginx.conf mit diesem Inhalt:
# Weitere Informationen zur Konfiguration finden Sie unter:
# * Offizielle englische Dokumentation:http://nginx.org/en/docs/
# * Offizielle russische Dokumentation:http://nginx. org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx. pid;
events {
worker_connections 1024;
}
http {
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 /var/log/nginx/ access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d laden.
# Siehe http://nginx.org/en/docs/ngx_core_module.html#include
# für weitere Informationen ormation.
include /etc/nginx/conf.d/*.conf;
server {
server_name mattermost.example.com;
location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "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-Optionen SAMEORIGIN;
proxy_pass http ://127.0.0.1 :8065;
}
}
}
Bitte stellen Sie sicher, dass Sie den korrekten Hostnamen verwenden, wie weiter oben in diesem Dokument angegeben.
Um sicherzustellen, dass wir keine Syntaxfehler in unseren Konfigurationsdateien haben, führen Sie den folgenden Befehl aus, um die Syntax zu überprüfen:
[[email protected] config]# nginx -t
nginx:Die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist in Ordnung
nginx:Konfigurationsdatei /etc/nginx/nginx.conf Test erfolgreich
Nginx als Daemon starten und aktivieren
Nginx starten
[[email protected] config]# systemctl start nginx
Status prüfen
[[email protected] config]# systemctl status nginx
Stellen Sie sicher, dass es mindestens eine Zeile mit folgendem Inhalt ausgibt:
...
Aktiv:aktiv (läuft) ...
...
Als Daemon aktivieren
[[email protected] config]# systemctl enable nginx
Symlink von /etc/systemd/system/multi-user.target.wants/nginx.service zu /usr/lib/systemd/system/nginx.service erstellt.
Wenn alles geklappt hat, sollte jetzt eine funktionierende Mattermost-Installation hinter Nginx laufen. Überprüfen Sie es, indem Sie die folgende URL in Ihrem Browser öffnen:
http://mattermost.example.com
Der Mattermost-Anmeldebildschirm sollte erscheinen!
Jetzt können Sie mit der Einrichtung Ihrer Mattermost-Installation fortfahren, indem Sie Ihre E-Mail-Adresse eingeben und ein Konto erstellen.
Firewalld
Zu Beginn dieses Tutorials 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), gehen Sie einfach wie folgt vor:
Firewalld starten und erneut aktivieren
[[email protected] config]# systemctl start firewalld
[[email protected] config]# systemctl enable firewalld
Symlink von /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service zu /usr/lib/systemd/system/firewalld.service erstellt.
Symlink von /etc/systemd/system erstellt /basic.target.wants/firewalld.service nach /usr/lib/systemd/system/firewalld.service.
Port 80 in der Firewall öffnen
[[email protected] config]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Erfolg
[[email protected] config]# firewall-cmd --reload
Erfolg
Jetzt sollte Ihre Mattermost-Installation erreichbar sein, sogar 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 dieses Howto leicht modifiziert wird.