为了账号安全,请及时绑定邮箱和手机立即绑定

node怎样让一个端口同时支持http和https?

node怎样让一个端口同时支持http和https?

jeck猫 2019-03-20 18:15:24
node生成的每个服务器必须分配一个端口。那么如果我们在工作中遇到一个需求:让同一个端口或地址既支持http协议又支持https协议,HTTP与HTTPS都属于应用层协议,所以只要我们在底层协议中进行反向代理,就可以解决这个问题!    var fs = require('fs');                             // 引入文件&目录模块    var http = require('http');                         // 引入http模块    var path = require('path');                         // 引入路径模块    var https = require('https');                       // 引入https模块    var net = require('net');             var httpport = 3000;    var httpsport = 3000;        var server = http.createServer(function(req, res){        res.writeHead(200, {'Content-Type': 'text/plain'});        res.end('secured hello world');       }).listen(httpport,'0.0.0.0',function(){        console.log('HTTP Server is running on: http://localhost:%s',httpport)    });        var options = {      pfx: fs.readFileSync(path.resolve(__dirname, 'config/server.pfx')),      passphrase: 'bhsoft'    };        var sserver = https.createServer(options, function(req, res){        res.writeHead(200, {'Content-Type': 'text/plain'});        res.end('secured hello world');       }).listen(httpsport,'0.0.0.0',function(){        console.log('HTTPS Server is running on: https://localhost:%s',httpsport)    });        var netserver = net.createServer(function(socket){      socket.once('data', function(buf){       console.log(buf[0]);       var address = buf[0] === 22 ? httpport : httpport;       var proxy = net.createConnection(address, function() {        proxy.write(buf);        socket.pipe(proxy).pipe(socket);       });       proxy.on('error', function(err) {        console.log(err);       });      });            socket.on('error', function(err) {       console.log(err);      });     }).listen(3344); 但是运行之后还报错3000端口被占用Error: listen EADDRINUSE 0.0.0.0:3000请问这个问题有什么办法解决?
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

你做不到,http和https协议不同,不能使用同一个端口


查看完整回答
反对 回复 2019-04-02
  • 1 回答
  • 0 关注
  • 419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号