之前一直没有接触NODEJS,前几天运维把内网虚拟机关闭了,后台上传功能失效,WHAT
一看地址502,然后看nginx ERROR日志如下:
2018/04/08 09:02:11 [error] 13215#0: *69 connect() failed (111: Connection refused) while connecting to upstream, client: 10.200.16.111, server: upload1.vision.demo1.**.com, request: "GET /v1/upload_widget?return=http://cms.demo1.***.com/upload_callback&callback=uploadCallback HTTP/1.1", upstream: "http://127.0.0.1:4000/v1/upload_widget?return=http://cms.demo1.***.com/upload_callback&callback=uploadCallback", host: "upload1.vision.demo1.***.com"
明确提示了,上游连接不了
又试了一下:
本地都连接不上,明显端口没有监听啊
netstat -tunlp
忘截图了,反正是果然没有没有应用监听
翻了一下代码,WHAT,里面是NODE JS代码
恩,百度了一下NODE JS的启动方法
原来是要启动进程,看了一下nodejs.sh里
如下:
#!/bin/bash
killall node
#nohup node /home/pp/web/storage/manager.js >>/tmp/node.log 2>&1 &
nohup node /home/pp/web/storage-1.3.4/manager.js >>/tmp/node.log 2>&1 &
manager.js代码如下:
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
var worker = cluster.fork();
console.log(worker.process.pid)
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
process.nextTick(function () {
cluster.fork();
});
});
} else {
var app = require('./app.js');
console.log('进程启动成功!');
}
app.js代码如下:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, uploads = require('./routes/uploads')
, http = require('http')
, object = require("./routes/object")
, monitor = require("./routes/monitor")
, path = require('path');
var app = express();
app.configure(function () {
app.set('config', require('./config/default'));
});
app.configure('dev', function () {
app.set('config', require('./config/dev'));
});
app.configure('test', function () {
app.set('config', require('./config/test'));
});
app.configure('beta', function () {
app.set('config', require('./config/beta'));
});
app.configure(function () {
app.set('port', process.env.PORT || 4000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser({hash: "sha1"}));
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(require('./middleware/config')(app));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(require('./middleware/error')());
});
var connect = require('express/node_modules/connect')
, mime = connect.mime;
app.configure('dev', function () {
app.use(express.errorHandler());
});
app.get('/upload', uploads.start);
app.get("/index", routes.index);
app.get('/v1/upload_widget', uploads.start);
app.post("/v1/upload_widget",uploads.upload_widget);
app.get('/v1/upload_object', object.start);
app.post('/v1/upload_object', object.saveOBJ);
app.post("/v1/url", uploads.uploadURL);
app.post('/v:id/upload', uploads.apiUpload);
app.post('/v:id/uploadData', uploads.apiUploadData);
app.post('/v:id/objects', object.saveOBJ);
app.put('/v:id/objects', object.saveOBJ);
app.delete('/v:id/objects', object.deleteObj);
app.post('/v:id/url', uploads.uploadURL);
app.get('/v:id/*', function (req, res) {
var msg = req.config("apiMessage");
console.log(req.config("dev"));
res.send(msg);
});
app.get("/monitor", monitor.check);
http.createServer(app).listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
最终的解决方式是
chmod a+x nodejs.sh #给nodejs.sh可执行权限
执行 ./nodejs.sh
OVER,502结束!