javascript
NODE JS记录
之前一直沒有接觸NODEJS,前幾天運(yùn)維把內(nèi)網(wǎng)虛擬機(jī)關(guān)閉了,后臺上傳功能失效,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"
明確提示了,上游連接不了
又試了一下:
本地都連接不上,明顯端口沒有監(jiān)聽啊
netstat -tunlp忘截圖了,反正是果然沒有沒有應(yīng)用監(jiān)聽
翻了一下代碼,WHAT,里面是NODE JS代碼
恩,百度了一下NODE JS的啟動方法
原來是要啟動進(jìn)程,看了一下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('進(jìn)程啟動成功!');
}
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可執(zhí)行權(quán)限
??執(zhí)行 ./nodejs.sh
OVER,502結(jié)束!
總結(jié)
- 上一篇: 可记录的点
- 下一篇: 沃尔玛开设电子书商店最新消息 与乐天Ko