gpt4 book ai didi

linux - Mattermost 的 Apache 反向代理 : No protocol handler was valid for the URL/api/v4/websocket

转载 作者:行者123 更新时间:2023-12-04 19:07:08 30 4
gpt4 key购买 nike

我真的需要你的帮助!一个月前,我在很多 linux 和网络论坛上发布了这个问题,也直接在 Mattermost 上发布了这个问题,但没有任何成功,我真的很需要这个工具。所以我希望你自己遇到这个问题,也许你可以帮助我。
由于我已经在使用 GitLab 并且 GitLab 带有内置的 Mattermost 安装,所以我使用了那个。安装后,我可以通过 127.0.0.1:8065 访问 Mattermost .到目前为止一切顺利,但由于我想通过 URL 使用它,我在 Plesk 中创建了一个子域并添加了一些 additional Apache directives就像描述的 here :
HTTP:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/.well-known/.*
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [last,redirect=301]
HTTPS:
ServerName mattermost.xxx.de
ProxyPreserveHost On

RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}

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]

<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>

ErrorLog /var/log/apache2/mattermost_error.log
CustomLog /var/log/apache2/mattermos_forwarded.log common_forwarded
CustomLog /var/log/apache2/mattermos_access.log combined env=!dontlog
CustomLog /var/log/apache2/mattermos.log combined
我还使用 Lets Encrypt 直接在 Plesk 内为该域启用了 SSL。为了确保一切正常,由于自签名证书,我还允许来自 Mattermost 的不安全连接。
我现在可以通过 https 联系 Mattermost而且证书看起来很棒。但现在我有一个大问题: websocket 不起作用,我在控制台中收到此错误:
enter image description here
没有 websocket,聊天工具就没有意义。我还在上面附加指令中定义的自定义错误日志中发现了这个错误:
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.
我对这个问题进行了很多研究,并在 Plesk 中启用了很多 Apache 模块,但没有任何成功:
enter image description here
对于一个重要的开发项目,我真的需要这个。我希望你知道答案——我已经走到了尽头......

最佳答案

放弃重写规则并使用 proxypassmatch

proxyPassMatch ^(/api/v[0-9]+/(users/)?websocket.*)$      ws://127.0.0.1:8065/$1
编辑
<VirtualHost *:443>
ServerName mattermost.xxx.de

##ssl stuff

RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}

proxyPassMatch ^(/api/v[0-9]+/(users/)?websocket.*)$ ws://127.0.0.1:8065/$1
ProxyPass / http://127.0.0.1:8065/
ProxyPassReverse / http://127.0.0.1:8065/
ProxyPassReverseCookieDomain 127.0.0.1 mattermost.xxx.de

ProxyPreserveHost On

ErrorLog /var/log/apache2/mattermost_error.log
CustomLog /var/log/apache2/mattermos_forwarded.log common_forwarded
CustomLog /var/log/apache2/mattermos_access.log combined env=!dontlog
CustomLog /var/log/apache2/mattermos.log combined
</VirtualHost>

关于linux - Mattermost 的 Apache 反向代理 : No protocol handler was valid for the URL/api/v4/websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66352774/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com