nodejs无法向远程https服务器发送请求

时间:2013-08-09 21:50:54

标签: node.js https nginx

我在Amazon EC2实例上有一个Nodejs应用程序,而nodejs应用程序正在侦听端口2000.

这是Nodejs片段,

var request = require('request');
request('https:[host]',{},function(err,res,body){
    console.log(res,body);
})

使用http请求是可以的,但使用https只能获得'undefined'。 但是CLI`curl -k'https:[host]'适用于同一个实例。

有什么问题?感谢

这是Nginx conf

upstream nodeserver {
    server 127.0.0.1:2000;
}

server {

    listen 80 default_server;
    server_name _;
    access_log /var/log/nginx/nodeserver.log;

    location / {

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://nodeserver;
        proxy_redirect off;
    }
}

这是安全组:

Port (Service)  Source  
22 (SSH)    0.0.0.0/0   
80 (HTTP)   0.0.0.0/0   
443 (HTTPS) 0.0.0.0/0       
2000    127.0.0.1/32    

1 个答案:

答案 0 :(得分:0)

您是否从源代码编译?如果在编译的./configure步骤中没有openssl libs,则node将无法连接到任何SSL端点。

有关编译节点的信息,请参阅此帖子:node js can't install right on my Ubuntu computer