我正在为websocket服务器设置反向代理。我可以通过使用Rewrite使其工作,但是我的理解是,这可能会引起问题,因为Apache如何使用工作程序来管理这些工作,并且我不确定这将如何影响服务器中发生的其他重写。因此,我不确定是否需要担心这一点,如果可以,我如何创建等效的proxypass规则来执行相同的操作。
<VirtualHost *:4152>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/lamp5-uat.crt
SSLCertificateKeyFile /etc/apache2/ssl/lamp5-uat.key
SSLCertificateChainFile /etc/apache2/ssl/DigiCertCA.crt
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://mysocket:4031/$1 [P]
ProxyPass / http://mysocket:4031/
</VirtualHost>
因此,我的套接字服务器也确实管理了偶尔的直接http调用,这就是为什么我有最后一个ProxyPass指令的原因。但是,我无法创建ProxyPass指令,该指令将触发客户端创建与后端服务器的套接字连接所需的协议升级。像大多数事情一样,我错过了一个至关重要的逻辑,该逻辑使我能够找出简单的解决方案。