Socket.io + NodeJS + Nginx + SSL [英] Socket.io + NodeJS + Nginx + SSL
本文介绍了Socket.io + NodeJS + Nginx + SSL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我使用Nginx时,我的套接字无法连接.我的配置文件是:
My socket does not connect when I am using 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;
}
}
我的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);
我的客户是
var socket = io.connect('https://localhost', {secure: true});
socket.on('connect', function () {
console.log("CONNECTED HERE TOO");
});
不用说,两个console.log
都不显示任何内容.我担心nginx阻止了该请求,而节点却实际上从未收到它?
Needless to say, none of the two console.log
show anything. I'm worried that nginx is blocking the request and node is actually never getting it?
推荐答案
似乎缺少listen 443 ssl;
Seems like there's missing listen 443 ssl;
这篇关于Socket.io + NodeJS + Nginx + SSL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文