Mattermost Websocket handshake fails when using apache as proxy

I’m not making any progress with my Mattermost installation on my server. I’ve installed everything without any problems.

After that I’ve enabled the apache mod proxy_wstunnel and added the following directives in my Plesk domain for additional directives (it like <VirtualHost *:80> or <VirtualHost *:443>):

HTTP:

ErrorLog ${APACHE_LOG_DIR}/mattermost-error.log
CustomLog ${APACHE_LOG_DIR}/mattermost-access.log combined

# Enforce HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

HTTPS:

ServerName mattermost.xxx.de
ProxyPreserveHost On

# Set web sockets
ProxyRequests Off
RemoteIPHeader CF-Connecting-IP
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/v[0-9]+/(users/)?websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
RequestHeader set X-Forwarded-Proto "https"

<LocationMatch "^/api/v(?<apiversion>[0-9]+)/(?<apiusers>users/)?websocket">
	Require all granted
	ProxyPass ws://127.0.0.1:8065/api/v%{env:MATCH_APIVERSION}/%{env:MATCH_APIUSERS}websocket
	ProxyPassReverse ws://127.0.0.1:8065/api/v%{env:MATCH_APIVERSION}/%{env:MATCH_APIUSERS}websocket
	ProxyPassReverseCookieDomain 127.0.0.1 mattermost.xxx.de
</LocationMatch>

<Location />
	Require all granted
	ProxyPass http://127.0.0.1:8065/
	ProxyPassReverse http://127.0.0.1:8065/
	ProxyPassReverseCookieDomain 127.0.0.1 mattermost.xxx.de
</Location>

But when I save this, restart apache and go back to Mattermost, I’m still getting the Websocket error:

enter image description here

In the network tab the response is empty…

Hey @Johnny99211 - This seems to be likely an Apache config issue. Would it be possible for you to directly reach the Mattermost instance and see if that works or not?

That way we can isolate whether the issue is with Apache or with Mattermost.

Hi @agnivade - Yes I know that this must come from Apache. The problem is that proxy is the only way since my server has no GUI and is hosted in a server farm.

I’ve tried a lot to get the right Apache config from any forum about Mattermost but no success. Also I’ve wrote an E-Mail to Mattermost but got no answer yet.

Sorry for the troubles there @Johnny99211. I personally don’t have any experience with Apache, so won’t be of much help there.

But we do have some unofficial documentation here:
https://docs.mattermost.com/install/config-apache2.html?highlight=apache
https://docs.mattermost.com/install/config-ssl-http2-apache2.html?highlight=apache

1 Like

@agnivade I’ve followed the two docs you mentioned but with the content from the docs only I’m getting the same error.

That’s not good. :frowning:

Maybe @XxLilBoPeepsxX can help out? I think you have prior experience with Apache?

@agnivade when he reads it - I hope he does. Parallel I’m looking for a different chatting solution because the Mattermost support also don’t answer my mails about that.

Hi, everyone.

I don’t have experience with Apache since but maybe we can start by looking at Apache side logs? We might be able to find more details of the error that we see there.

  • What is the error shown when you expand the error the Websocket connection to wss://mattermost? Any details there?

  • Additionally, what does the DEBUG log level enabled mattermost.log show?

  • Would you consider the supported NGINX proxy or is an organization requirement to use Apache?

Can you also confirm which email did you use to write to Mattermost support so I can confirm the status of the support ticket?

I am so sorry I just now read this! Yes, I can most definitely help you with your Apache configuration, do you have access to your Apache access and error logs? You can find these from the command line with the command cd /var/log/apache2/ and then list the logs available by just running the command ls -alh

Again, I am so sorry for the delay, I didn’t get a notification for this at all, I hope I can be of help!

Could you provide the contents of your Apache VirtualHost configuration file? You should be able to find it (assuming you’re using some form of Debian Linux) in the /etc/apache2/sites-available/ directory, although I can’t tell you specifically which file in the directory it would be since you would have created that yourself.

In addition, could you elaborate a bit further on your OS, Mattermost version, Apache version, and the setup you are looking to achieve with Apache ( Are you setting up an SSL signed domain/subdomain with Apache, to run Mattermost through, or something along those lines?)

Hi! Thanks a lot for joining the discussion. These are the available logs:

mattermost_access.log
mattermost-access.log
mattermost_access.log.1
mattermost_error.log
mattermost-error.log
mattermost-error.log.1
mattermost_forwarded.log
mattermost_forwarded.log.1
mattermost.log
mattermost.log.1

The sites are managed by Plesk so the structure is a bit different. Also the SSL thing is managed by Plesk so I just set an SSL certificate to the domain like described here:

In the sites-available we have two files:

000-default.conf
default-ssl.conf
1 Like

Alright sounds good, let’s dive into it then!

Could you provide the contents of the following files? I’ll explain my reasoning behind each of these following the list of files.

mattermost_access.log
mattermost-access.log
mattermost_error.log
mattermost-error.log
mattermost_forwarded.log
mattermost.log

My reasoning behind asking for the contents of each of these files is due to not knowing yet if the issue is an authentication issue with Mattermost itself, through the reverse proxy, or if it is an error within Mattermost or Apache that otherwise would need to be resolved. The reason I ask for both the underscored and hyphenated log contents is honestly that I haven’t seen them formatted like that before, and in my experience, it’s better to cover all the bases than to miss something.

Could you also see if 000-default.conf contains the Mattermost Apache reverse configuration contents, and if it does, provide that as well so we can see if your proxy is correctly set up?

Thanks!

Here we have the content of the files you’ve asked about.

mattermost.log:

176.9.84.24 - - [22/Feb/2021:21:02:40 +0100] "GET /admin_console/about/license HTTP/1.0" 200 3216 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:40 +0100] "GET /static/main.9ef911c6437f8b1ded00.css HTTP/1.0" 200 143220 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/main.a8f8f181c6bb88f0eafe.js HTTP/1.0" 200 1207966 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/files/4250bf1b7a0dce186cefd67a41cb1b2c.woff2 HTTP/1.0" 200 62970 "https://mattermost.enwikuna.de/static/main.9ef911c6437f8b1ded00.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/main.9ef911c6437f8b1ded00.css.map HTTP/1.0" 200 167917 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/main.a8f8f181c6bb88f0eafe.js.map HTTP/1.0" 200 2801132 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/6.aa07f589b8b4b537cd5a.css HTTP/1.0" 200 2547 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/7.c9ade57131b12a10c936.css HTTP/1.0" 200 28775 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/images/favicon/favicon-default-32x32.png HTTP/1.0" 200 1392 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/6.730f1c9ffcc180ee2075.js HTTP/1.0" 200 385857 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/7.d80b5510b069254587e4.js HTTP/1.0" 200 517151 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:41 +0100] "GET /static/manifest.json HTTP/1.0" 200 1843 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/6.aa07f589b8b4b537cd5a.css.map HTTP/1.0" 200 2777 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/7.c9ade57131b12a10c936.css.map HTTP/1.0" 200 35945 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/icon_144x144.png HTTP/1.0" 200 17939 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/6.730f1c9ffcc180ee2075.js.map HTTP/1.0" 200 1412832 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/1.244ea51194786e4c7287.js HTTP/1.0" 200 31440 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/3.0c1c9f3a6bf93ebf2947.js HTTP/1.0" 200 1269 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/12.a8e4cef9fcfed7199423.js HTTP/1.0" 200 44430 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/config/client?format=old HTTP/1.0" 200 2611 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/license/client?format=old HTTP/1.0" 200 487 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/7.d80b5510b069254587e4.js.map HTTP/1.0" 200 1119277 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/users/me/teams/unread HTTP/1.0" 200 466 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/users/me/teams/members HTTP/1.0" 200 466 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/users/me/preferences HTTP/1.0" 200 701 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/users/me/teams HTTP/1.0" 200 466 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/users/me HTTP/1.0" 200 1180 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /api/v4/plugins/webapp HTTP/1.0" 200 817 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "POST /api/v4/roles/names HTTP/1.0" 200 1468 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/plugins/com.mattermost.nps/com.mattermost.nps_2b9470f8eb3de95b_bundle.js HTTP/1.0" 200 84845 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "GET /static/2.52b7193b238997bd87fa.js HTTP/1.0" 200 2408 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/0.2e85d9b6309ed5adbdd7.js HTTP/1.0" 200 192673 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/8.3cc50b97eb7513b1f9d6.css HTTP/1.0" 200 15081 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/1.244ea51194786e4c7287.js HTTP/1.0" 200 31440 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/10.cfe5e7877ade1dea1343.js HTTP/1.0" 200 75137 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/8.49ec79a5d005cfaa8f0b.js HTTP/1.0" 200 197394 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:42 +0100] "POST /plugins/com.mattermost.nps/api/v1/connected HTTP/1.0" 200 280 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/2.52b7193b238997bd87fa.js.map HTTP/1.0" 200 5730 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/8.3cc50b97eb7513b1f9d6.css.map HTTP/1.0" 200 19111 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/1.244ea51194786e4c7287.js.map HTTP/1.0" 200 102219 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/websocket HTTP/1.0" 200 1867 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/0.2e85d9b6309ed5adbdd7.js.map HTTP/1.0" 200 593701 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/10.cfe5e7877ade1dea1343.js.map HTTP/1.0" 200 272597 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/config/environment HTTP/1.0" 200 1006 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "POST /api/v4/roles/names HTTP/1.0" 200 1765 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/8.49ec79a5d005cfaa8f0b.js.map HTTP/1.0" 200 499426 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/config HTTP/1.0" 200 5220 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/plugins HTTP/1.0" 200 1153 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/files/5774086c0982c08e56ea1924bbe0796d.woff2 HTTP/1.0" 200 64726 "https://mattermost.enwikuna.de/static/main.9ef911c6437f8b1ded00.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/analytics/old?name=standard&team_id= HTTP/1.0" 200 921 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/upgrade_to_enterprise/status HTTP/1.0" 200 494 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /static/files/20fd1704ea223900efa9fd4e869efb08.woff2 HTTP/1.0" 200 78242 "https://mattermost.enwikuna.de/static/main.9ef911c6437f8b1ded00.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/license/client?format=old HTTP/1.0" 200 487 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:43 +0100] "GET /api/v4/analytics/old?name=standard&team_id= HTTP/1.0" 200 921 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:46 +0100] "GET /api/v4/websocket HTTP/1.0" 200 1867 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:49 +0100] "GET /api/v4/websocket HTTP/1.0" 200 1867 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
176.9.84.24 - - [22/Feb/2021:21:02:52 +0100] "GET /api/v4/websocket HTTP/1.0" 200 1867 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"

mattermost_error.log:

[Mon Feb 22 21:02:43.136039 2021] [proxy:warn] [pid 13391:tid 139997126448896] [client 176.9.84.24:54238] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:02:46.322435 2021] [proxy:warn] [pid 13391:tid 139996539385600] [client 176.9.84.24:54270] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:02:49.474938 2021] [proxy:warn] [pid 13391:tid 139996824573696] [client 176.9.84.24:54274] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:02:52.636221 2021] [proxy:warn] [pid 13391:tid 139996497422080] [client 176.9.84.24:54282] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:02:55.838116 2021] [proxy:warn] [pid 13391:tid 139995734079232] [client 176.9.84.24:54290] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:02:59.030538 2021] [proxy:warn] [pid 13391:tid 139996489029376] [client 176.9.84.24:54294] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:03:02.372014 2021] [proxy:warn] [pid 13391:tid 139995708901120] [client 176.9.84.24:54298] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
[Mon Feb 22 21:03:05.536447 2021] [proxy:warn] [pid 13391:tid 139995692115712] [client 176.9.84.24:54302] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

The other log files are all empty after removing the content and reloading mattermost. There was a lot of stuff from the installation that is not helpful. I think there is something in the error log but I can’t do anything with that.

This is the content of 000-default.conf:

<VirtualHost *:7080>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

But I think this dont helps because everything is managed by Plesk as I mentioned in my initial question. There is a way adding additional HTTPS directives in Plesk for a domain which is the same like writing it into the configs there. I’ve did this with GitLab too and it works perfectly. You can find my config above. Because Plesk also manage SSL, there is no need for writing a path to the SSL file into the additional directives. Thats all I know about that.

This is a list of all modules enabled on my Apache:

Thanks for all the information, it is quite useful! Specifically, this part:

Could you enable the module proxy_ajp and see if that works?

Done:

Sadly without any success. The error seems to be still the same:

[Tue Feb 23 23:04:24.118871 2021] [proxy:warn] [pid 26720:tid 140366820919040] [client 176.9.84.24:40346] AH01144: No protocol handler was valid for the URL /api/v4/websocket (scheme 'ws'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

Not to fear, there are several other things to check and try before it would require truly in-depth diagnostics.

Do you happen to have the configuration file that you used with Apache anywhere accessible that you could provide the contents?

Sure - you can find the content of the file above. Thats the only way I can add additional apache directives when using Plesk as a server manager. I didn’t configured anything else - just the GitLab config file where I enabled mattermost.

By any chance are you using the built-in mattermost TLS encryption feature?

Nope, no TLS enabled:

The SSL certificate is set by Plesk automatically and since ths application is proxied, it should normally work…