Hintergrund
Ich habe es satt, dass Slack zu teuer ist, also habe ich beschlossen, es durch Mattermost zu ersetzen. Ich habe eine AWS-Ubuntu-Box mit einer öffentlichen IP bekommen und bin den Mattermost-Richtlinien gefolgt.Installationsanleitung(der Hauptunterschied besteht darin, dass ich alles auf demselben Server laufen lasse, im Gegensatz zu einem separaten Datenbankserver und Speicherserver usw., die alle auf derselben Maschine laufen, d. h.http://127.0.0.1)
Meine Domain (lobolabshq.com) wird verwaltet vonwix, und so habe ich eine Subdomäne hinzugefügt:mattermost.lobolabshq.com
Ich habe den Mattermost-Server auf der AWS-Box installiert und dann nginx so eingerichtet, dass die Anfragen an den nginx-Server weitergeleitet werden. Meine nginx-Proxy-Konfiguration ist gespeichert /etc/nginx/sites-available/mattermost
und sieht folgendermaßen aus:
upstream backend {
server 127.0.0.1:8065;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name mattermost.lobolabshq.com;
location /api/v3/users/websocket {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
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_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
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_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_pass http://backend;
}
}
Problem
Wenn ich gehehttp://mattermost.lobolabshq.comes gibt diesen Fehler zurück:
Netzwerkfehler (tcp_error)
Ein Kommunikationsfehler ist aufgetreten: „Zeitüberschreitung des Vorgangs“. Der Webserver ist möglicherweise ausgefallen, überlastet oder weist andere Probleme auf, die verhindern, dass er auf Anfragen reagiert. Sie können es zu einem späteren Zeitpunkt erneut versuchen.
Analyse/Was ich versucht habe
Der Mattermost-Server läuft lokal einwandfrei
Ich weiß, dass mein Mattermost-Server lokal einwandfrei läuft, denn lautDokumentewenn ich curl http://127.0.0.01:8065
es ausführe, wird die Mattermost-Willkommensseite zurückgegeben
Der Nginx-Server leitet Anfragen erfolgreich an Port :80 um.
Ich weiß, dass Nginx einwandfrei läuft, denn wenn ich es ausführe curl http://localhost
, curl http://127.0.0.1
erhalte ich auch dieselbe Willkommensseite von Mattermost.
Domäne zeigt auf AWS-Maschine
Ich weiß dashttp://mattermost.lobolabshq.comverweist auch auf die öffentliche IP meiner AWS-Box:
dig mattermost.lobolabshq.com
; <<>> DiG 9.8.3-P1 <<>> mattermost.lobolabshq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62124
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mattermost.lobolabshq.com. IN A
;; ANSWER SECTION:
mattermost.lobolabshq.com. 1800 IN A 54.165.78.199
Netstat-Ausgabe
sudo netstat -anp | grep tcp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1803/nginx -g daemo
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1134/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1249/postgres
tcp 0 0 172.31.50.32:22 185.81.141.147:54411 ESTABLISHED 1860/sshd: ubuntu [
tcp 0 72 172.31.50.32:22 185.81.141.147:60344 ESTABLISHED 1603/sshd: ubuntu [
tcp6 0 0 :::22 :::* LISTEN 1134/sshd
tcp6 0 0 :::8065 :::*
Externe Anfragen erreichen ngix NICHT
Wenn ich es curl localhost
lokal ausführe, werden meine Nginx-Zugriffsprotokolle aktualisiert:
127.0.0.1 - - [18/Jan/2017:06:41:09 +0000] "GET / HTTP/1.1" 200 2246 "-" "curl/7.47.0"
aber ich bekomme keinen solchen Eintrag, wenn ich mattermost.lobolabshq.com vom Browser aus aufrufe
Antwort1
Ich musste lediglich die Sicherheitsgruppe aktualisieren, zu der meine AWS-Box gehörte, und alle eingehenden TCP-Verbindungen über Port 80 zulassen.