gpt4 book ai didi

node.js - 用于 SockJS + Express 的 Nodejs SSL

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:07 25 4
gpt4 key购买 nike

我在 nodejs 中有一个简单的 SockJSExpress 服务器。现在我想为这些服务器添加 SSL 支持

这是我的服务器代码:

var sockjs = require('sockjs');
var my_http = require("http");
var https = require('https');
var fs = require('fs');


var options = {
key: fs.readFileSync('test/keys/key.pem'),
cert: fs.readFileSync('test/keys/cert.pem')
};

// Create a service (the app object is just a callback).
var app = express();

// Create an HTTP service.
http.createServer(app).listen(8008);
// Create an HTTPS service identical to the HTTP service.
https.createServer(options, app).listen(443);


var echo = sockjs.createServer({
log: function (severity, message) {}
});
echo.on('connection', function (conn) {

conn.on('data', function (message) {
conn.write(message);
});

conn.on('close', function () {

});
});

var server = my_http.createServer();
echo.installHandlers(server, {
prefix: '/echo'
});
server.listen(8081, '0.0.0.0');

var server_https = my_http.createServer(options);
echo.installHandlers(server_https, {
prefix: '/echo'
});
server_https.listen(443, '0.0.0.0');



app.get('/type/:channel', function (req, res) {
res.setHeader('Content-Type', 'application/json');
res.send("Hello");

res.end();
});

问题是我得到了port already in use error:

Error: listen EADDRINUSE

我让 Nginx 在 443 上监听,否则我的网站将无法在 ssl 上运行。

有什么设置方法吗?

最佳答案

在您的 nginx 配置中,您应该将端口列在“上游”中。在您的情况下,您可能在服务器下列出了相同的端口。当您这样做时,它会显示该错误。请参阅下面的正确配置(如果将“listen 80”更改为“listen 8000”,您将看到该错误):

    upstream app_yourAppName {
server 127.0.0.1:8000;
}

# the nginx server instance
server {
listen 80;
...
...
}

关于node.js - 用于 SockJS + Express 的 Nodejs SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com