After upgrading from version 3 shipped with Turnkeys Image of mattermost nginx is reporting bad gateway.
I switched out the nginx config with the one from the docs and added the ssl parts to it. It seems something with the proxy_pass is not working right. I use non-standard ports 8440 and 8441 for http and https respectively, but set them inside the server and nginx.
Current nginx config:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m;
server {
listen 8440 default_server;
server_name ##URL##;
return 301 https://$server_name$request_uri;
}
server {
listen 8441 ssl;
include /etc/nginx/include/ssl;
server_name ##URL##;
location ~ /api/v[0-9]+/(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;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass https://##URL##:8441;
}
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_http_version 1.1;
proxy_pass https://##URL##:8441;
}
}
upstream ##URL##:8441 {
server 127.0.0.1:8065;
keepalive 32;
}
I have exhausted all information I could find regarding the configuration changes required. The mattermost config itself reads servicesettings as such:
"ServiceSettings": {
"SiteURL": "https://##URL##:8441",
"LicenseFileLocation": "",
"ListenAddress": "127.0.0.1:8065",
"ConnectionSecurity": "",
"TLSCertFile": "",
"TLSKeyFile": "",
"UseLetsEncrypt": true,
"LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache",
"Forward80To443": false,
"ReadTimeout": 300,
"WriteTimeout": 300,
"EnableAPIv3": true,
"MaximumLoginAttempts": 10,
"GoogleDeveloperKey": "",
"EnableOAuthServiceProvider": true,
"EnableIncomingWebhooks": true,
"EnableOutgoingWebhooks": true,
"EnableCommands": true,
"EnableOnlyAdminIntegrations": true,
"EnablePostUsernameOverride": true,
"EnablePostIconOverride": true,
"EnableLinkPreviews": false,
"EnableTesting": false,
"EnableDeveloper": false,
"EnableSecurityFixAlert": true,
"EnableInsecureOutgoingConnections": false,
"EnableMultifactorAuthentication": false,
"EnforceMultifactorAuthentication": false,
"AllowCorsFrom": "",
"SessionLengthWebInDays": 30,
"SessionLengthMobileInDays": 30,
"SessionLengthSSOInDays": 30,
"SessionCacheInMinutes": 10,
"WebsocketSecurePort": 8441,
"WebsocketPort": 8440,
"WebserverMode": "gzip",
"EnableCustomEmoji": false,
"RestrictCustomEmojiCreation": "all",
"RestrictPostDelete": "all",
"AllowEditPost": "always",
"PostEditTimeLimit": 300,
"TimeBetweenUserTypingUpdatesMilliseconds": 5000,
"EnableUserTypingMessages": true,
"ClusterLogTimeoutMilliseconds": 2000
}