作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的需要你的帮助!一个月前,我在很多 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 不起作用,我在控制台中收到此错误:
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 模块,但没有任何成功:
最佳答案
放弃重写规则并使用 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/
我是一名优秀的程序员,十分优秀!