我有一个数字海洋小滴正在运行一个使用pm2运行的nodeJS服务器。当我在本地运行我的preact app并将io.connect设置为
时io.connect('app.ardilabs.com:9080');
app.ardilabs.com是nodeJS服务器所在的位置。
本地运行的Web应用程序将从D.O.连接到远程服务器。然后将使用Postman使用我发布的数据更新我的应用程序。
当我尝试构建应用程序并将其放在相同的D.O Droplet上并使用nginx提供应用程序时,应用程序将在您转到URL时加载,但它无法连接到nodeJS服务器。当我尝试发布一些内容时,我从服务器收到一条确认信息,表明它获取了我的数据,但它从未转发给应用程序。
为什么它在本地和远程服务器上工作,但在我托管应用程序并使用nginx服务时却没有?我真的很难过。
以下是相关的服务器代码:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
// routes will go here
io.on('connection', function(socket){
//We need a connection but we don't need to do anything about it
});
// start the server
http.listen(9080, function() {
console.log('listening on *:9080');
});
以下是相关的客户代码:
import io from 'socket.io-client';
const socket = io.connect('app.ardilabs.com:9080');
一些额外的说明:
如果我遗漏了所需的任何信息,请告诉我们!
答案 0 :(得分:0)
我弄清楚问题是什么。
一旦我在我的nginx服务器上放置了证书,我就没有意识到我需要配置我的快速服务器也使用HTTPS。一旦我在快速服务器上启用了HTTPS,数据就可以很好地传输到连接的Web应用程序。