nginx和apache2.4使用rewrite反向代理websocket

当服务器不允许开放其他端口时,可以使用nginx和apache的反向代理。

apache

在httpd.conf开启以下模块加载

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

然后添加以下代码:

ProxyPass /ws/ ws://localhost:1234
ProxyPassReverse /ws/ ws://localhost:1234
ProxyPass /ws/ http://localhost:1234
ProxyPassReverse /ws/ http://localhost:1234

然后就可以使用:

<script>
var protocol =  'ws://www.example.com/ws/';
var ws = new WebSocket(protocol);
...
</script>

nginx

在nginx配置文件中添加如下代码:

location /ws {
    proxy_pass https://127.0.0.1:1234;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注