[英]Socket.io + NodeJS + Nginx + SSL
My socket does not connect when I am using Nginx. 使用Nginx时,我的套接字无法连接。 My config file is:
我的配置文件是:
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name mysite.com
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED';
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
keepalive_timeout 70;
access_log /var/log/nginx/dash.log;
# pass the request to the node.js server
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header Front-End-Https on;
proxy_pass https://127.0.0.1:8081;
proxy_redirect off;
}
}
My NodeJS is: 我的NodeJS是:
// Setup servers
var app = express();
var HTTPSOptions = {
cert: fs.readFileSync(config.ssl.server_cert),
key: fs.readFileSync(config.ssl.server_key),
requestCert: false,
rejectUnauthorized: false,
passphrase: config.ssl.server_password
};
HTTPSOptions.agent = new https.Agent(HTTPSOptions);
io = io.listen(server, {
log: false
});
io.sockets.on('connection', function (sock) {
console.log("CONNECTED");
});
var httpsServer = https.createServer(HTTPSOptions, app);
And my client is 我的客户是
var socket = io.connect('https://localhost', {secure: true});
socket.on('connect', function () {
console.log("CONNECTED HERE TOO");
});
Needless to say, none of the two console.log
show anything. 不用说,两个
console.log
都不显示任何内容。 I'm worried that nginx is blocking the request and node is actually never getting it? 我担心nginx阻止了该请求,而节点却实际上从未收到它?
似乎缺少listen 443
ssl ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.