我在CentOS 7上的Apache 2.4.18之后使用Go安全WebSocket(wss://)服务器。以下是设置:
确保系统具有mod_proxy_wstunnel:
#查找/ usr / lib64 / httpd / modules / | grep ws
/usr/lib64/httpd/modules/mod_proxy_wstunnel.so
在00-proxy.conf中添加以下行:
#vim /etc/httpd/conf.modules.d/00-proxy.conf
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
重新启动Apache:
#systemctl重新启动httpd
检查设置:
#httpd -M | grep -iE’代理’
proxy_module (shared) proxy_fcgi_module (shared) proxy_http_module (shared) proxy_wstunnel_module (shared)
编辑httpd-vhosts.conf:
#vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:443> ServerName go.mydomain.com:443 ProxyPreserveHost On ProxyRequests off SSLProxyEngine On SSLCertificateFile "/etc/pki/tls/certs/mydomain.com/mydomain.crt" SSLCertificateKeyFile "/etc/pki/tls/certs/mydomain.com/mydomain.key" ### The configured ProxyPass and ProxyPassMatch rules are checked ### in the order of configuration. The first rule that matches wins. ProxyPassMatch ^/(ws(/.*)?)$ wss://192.168.0.1:443/$1 ProxyPass / https://192.168.0.1:443/ ProxyPassReverse / https://192.168.0.1:443/ ErrorLog "/var/log/httpd/go.mydomain.com-error_log" CustomLog "/var/log/httpd/go.mydomain.com-access_log" common</VirtualHost><VirtualHost *:80> ServerName go.mydomain.com:80 ProxyPreserveHost On ProxyRequests off ### ProxyPassMatch ^/(ws(/.*)?)$ ws://192.168.0.1:80/$1 ProxyPass / http://192.168.0.1:80/ ProxyPassReverse / http://192.168.0.1:80/ ErrorLog "/var/log/httpd/go.mydomain.com-error_log" CustomLog "/var/log/httpd/go.mydomain.com-access_log" common</VirtualHost>



