Node.js has UNIX domain socket issue
##Installation
npm install unix-socket
##Usage
var http = require('http'),
unixSocket = require("unix-socket");
var server = http.Server();
var option = {
path: "/var/run/shm/nodejs/server.sock",
mode: 0666
};
unixSocket.listen(server, option, function(result) {
if (result) {
console.log('Server started on ' + result);
} else {
console.error('Error');
process.exit(0);
}
});
##Option
var option = {
path: "/var/run/shm/nodejs/server.sock",
mode: 0666
};
//or
var option = {
path: [ "/var/run/shm/nodejs/server1.sock", "/var/run/shm/nodejs/server2.sock" ]
mode: 0666
};
##Methods ###isStreamOpen(path, [callback]) return boolean
var result = unixSocket.isStreamOpen(path);
//or
unixSocket.isStreamOpen(path, function(result) {
});
###prepareStream(path, [callback]) return boolean
var result = unixSocket.prepareStream(path);
//or
unixSocket.prepareStream(path, function(result) {
});
###availableStream(paths, [callback]) return path(string)
var tryList = [ "/var/run/shm/nodejs/server1.sock", "/var/run/shm/nodejs/server2.sock" ];
var path = unixSocket.availableStream(tryList);
//or
unixSocket.availableStream(tryList, function(path) {
});
###listen(server, option, callback) Prepare unix socket, unlink first if exists.
##Issue ###Permission denied (from Nginx)
connect() to unix:/var/run/shm/nodejs/server.sock failed (13: Permission denied) while connecting to upstream, client...
chmod 777 /tmp/app.socket