繁体   English   中英

通过apache webproxy连接到socket.IO服务器

[英]connecting to socket.IO server through apache webproxy

我的vps上有2个node.js应用程序。 一个在端口3001上,另一个在端口5001(ssl)和5000(http)上。

我使用apache代理将流量从首页路由到node.js服务器。 它还使我可以轻松安装LE证书。

这是我的Apache设置

    ProxyPass /herstelling http://localhost:5000/
    ProxyPassReverse /herstelling http://localhost:5000/
    ProxyPass /kaaswijn http://localhost:3001/
    ProxyPassReverse /kaaswijn http://localhost:3001/

该站点已加载,但无法连接我的socket.io。 这是我正在使用的代码

为了使https工作,我设置了一个域名cdn.quintenverhelst.be来获取证书。

该域仅直接指向服务器IP

在nodeJS服务器上:

var app = require('express')();
var http = require('http').Server(app);
var port = 5000;
var express = require('express');
var io = require('socket.io')(http);

https.createServer({
//server keys
}, app).listen(5001);

客户端连接代码:

 <script src="https://cdn.quintenverhelst.be:5001/socket.io/socket.io.js"></script>   
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
    <script> var socket = io.connect("https://cdn.quintenverhelst.be:5001");</script>
    <script  src="https://cdn.jsdelivr.net/gh/verhelstq/maintenanceReport/engine.js"></script>

当我打开它给我的错误:

socket.io.js:1无法加载资源:服务器响应状态为404(未找到)

URL无法解析为socket.io.js文件。 看起来它甚至没有将套接字IO脚本加载到页面中:

<script src="https://cdn.quintenverhelst.be:5001/socket.io/socket.io.js"></script>  

尝试删除端口号,这是我最后进行测试时解析的JS文件。

<script src="https://cdn.quintenverhelst.be/socket.io/socket.io.js"></script>  

那至少可以使您摆脱第一个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM