gpt4 book ai didi

Node.js+express 代理 ssl

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

我正在尝试使用 express 在 node.js 中编写一个反向代理,它可以很好地处理 http 请求。问题是当请求 https 时它从不响应,并且浏览器声明代理拒绝连接。以下是 http 请求的工作代码:

var   app = express(),
http=require('http');

app.configure(function(){ /* express stuff to log and use routes and the like */ });

http.createServer(app).listen(8000, function(){
console.log("Express server listening on port " + 8000);
});

app.all('*', proxy);
var request=require('request');

var proxy=function(req,resp){
var data={
url:req.url,
headers: {
'Connection': 'keep-alive'
}
}
var proxy=request(req.url);
proxy.pipe(resp);
}

现在,至于 SSL,我目前正在尝试:

var https=require('https'),
fs=require('fs');

https.createServer({
key: fs.readFileSync(__dirname+'/ssl/server.key', 'utf8'),
cert: fs.readFileSync(__dirname+'/ssl/server.crt', 'utf8')
},app).listen(8001, function(){
console.log("Express server listening on port " + 8001);
});

代理可以在任何需要 50.56.195.215:8000 用于 HTTP 和 50.56.195.215:8001 用于 SSL 的地方使用。它没有任何安全性,所以不要登录任何重要的东西 =D

我正在使用自签名的 SSL 证书,我想尝试做这样的事情对我来说有点傻,但我没有任何想法了:P

最佳答案

我的建议是使用现有的优秀库 node-http-proxy来自 Nodejitsu。如果您想自己编写,至少要在学术上研究他们的源代码。

关于您上述方法的一些说明:

  • 除了 GET(POST、PUT、DELETE 等)之外,您不处理 HTTP 方法。这些存在。如果你想让你的代理真正工作,你必须处理它们。每次调用 request(req.url) 时,request 默认都会发出 GET 请求。

关于Node.js+express 代理 ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13310480/

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