关键词:
之前的话我们的项目都是跑在windows上,今天我们要将我们的程序跑到linxu机器上。在看linux部署之前,我们先看一下node.js类似于asp.net mvc的过滤器或者叫拦截器。在app.js中我们加入如下代码
var beforeRequest = function (req, res, next) { if (req.originalUrl == ‘/‘ || req.originalUrl == ‘/login‘ || req.originalUrl == ‘/config‘ || req.originalUrl == ‘/user‘ || req.originalUrl == ‘/logInout‘) { next(); } else if (session.user == null || session.user == undefined || !session.user.UserID) { res.redirect(‘/login‘); } else { next(); } } app.use(beforeRequest);
此时当有请求到达时,就会先判断用户是否登录,如果未登录,则跳转至登陆界面。但是要确保该代码在注册路由之前。
app.use(‘/‘, routes);
OK,接下来我们在看一下node.js平台上log4js的使用。
var log4js = require(‘log4js‘); var log4jsConfig = require(‘./framework/config/log4js_config.js‘); log4js.configure(log4jsConfig.config);
ok,接下来我们看一下log4js的配置
exports.config = { appenders: [ { type: ‘console‘, category: "console" }, { type: ‘file‘, filename: ‘logs/info.log‘, maxLogSize: 1024, backups: 1, category: ‘log_info‘ }, { type: "datefile", filename: "logs/error", alwaysIncludePattern: true, pattern: "-yyyy-MM-dd-hh.log", category: "log_error" }, { category: "log_trace", type: "datefile", alwaysIncludePattern: true, pattern: "-yyyy-MM-dd-hh.log", filename: "logs/trace" } ], replaceConsole: true, levels: { console: "ALL", log_error: "ALL", log_info: "ALL", log_trace: "ALL" } }
OK,经过这样的配置之后,我们看一下记录的log。
OK,其实在app.js中我们对记录进行了设置。
var loggerInfo = log4js.getLogger(‘log_info‘); var loggerError = log4js.getLogger(‘log_error‘); var loggerTrace = log4js.getLogger(‘log_trace‘); app.use(log4js.connectLogger(loggerInfo, { format: ‘:method :url‘ }));
定义了三种log,error分别记录404和500。
app.use(function (req, res, next) { loggerError.error(req.url); var err = new Error(‘Not Found‘); err.status = 404; err.message = "The resource you are look for is not found!"; next(err); }); app.use(function (err, req, res, next) { res.status(err.status || 500); loggerError.error(err.message); res.render(‘error‘, { message: err.message, error: {} }); });
而info用来记录console.log,经过设置
replaceConsole: true
使得console的内容可以在窗口输出,而不是仅写入log文件。
[2016-08-01 14:17:01.074] [INFO] log_info - GET /user/file?pageIndex=0&pageSize=10&isShared=false&fileName= [2016-08-01 14:17:02.408] [INFO] log_info - GET /page?q=s [2016-08-01 14:17:02.841] [INFO] log_info - GET /docshare [2016-08-01 14:17:04.674] [INFO] log_info - GET /user/sharedfile?userId=&pageIndex=0&pageSize=10&fileName=&startDate=&endDate= [2016-08-01 14:17:08.921] [INFO] log_info - GET /page?q=u [2016-08-01 14:17:11.713] [INFO] log_info - GET /page?q=r [2016-08-01 14:17:11.919] [INFO] log_info - GET /file/auth [2016-08-01 14:17:13.628] [INFO] log_info - GET /user/file?pageIndex=0&pageSize=10&isShared=true&startDate=Fri%20Jul%2001%202016%2000:00:00%20GMT+0800%20(й)&endDate=Mon%20Aug%2001%202016%2014:17:11%20GMT+0800%20(й)&fileName= [2016-08-01 14:17:21.512] [INFO] log_info - GET /page?q=c
而且格式就是上面设置的http method+URL
app.use(log4js.connectLogger(loggerInfo, { format: ‘:method :url‘ }));
OK,关于log4js就说这么多,毕竟只是个工具,大家自己下去看api就行了。
好了,接着我们将改程序部署至linux我的centos5。
有没有注意到我桌面的ftp服务器192.168.80.1,没错就是我在win10搭建的ftp服务器。OK,我们将node.js程序放到ftp,我们再拷贝至centos。
ok,我们把所有要用的东西都通过此方法拷贝至centos。
我们需要的是部署程序,mongodb,node.js for linux。好的,完成后,我们先要启动mongodb
接着我们通过node命令启动程序。
启动成功,我们在window上访问一下
有的人说了,你这个图我怎么知道是不是linux的ip。我现在就给你看两张图,一个是ip,
一个是centos的火狐浏览器。
我们再看一下linux下火狐的浏览效果
这个浏览器估计有些老,不支持html5。OK最后我们登录进去看系统是否正常。
木有什么问题,ok,今天就到这里。后面会多多的玩linux,什么.net core什么玩意的我们也玩玩。
本文出自 “技术创造价值” 博客,请务必保留此出处http://leelei.blog.51cto.com/856755/1847040
node.js切近实战之excel在线(文件&文件组)
最近西安的天气真他妈的热,感觉还是青海的天气美,最高温28度。上周逛了青海湖,感觉还是意犹未尽,其实我还是很喜欢去一趟西藏的,但是考虑到花费也没人陪我,我暂时放弃这个念头。计划去一下重庆或者甘南,也许是... 查看详情
node.js实战之node多进程与jxcore打包深入运用(代码片段)
@[toc]JXcore打包Jxcore是一个支持多线程JS发布版本的节点,基本上不需要对现有代码进行任何更改,可以直接在多线程中运行,具有线程安全性。本文主要介绍jxcore的封装功能。下载jxcore安装包并解压缩。解压目录中提供了JX二进... 查看详情
实战系列之node.js玩转java
这些年以来,Node.js的兴起,JavaScript已经从当年的“世界最被误解的语言”变成了“世界最流行的语言”。且其发展之势,从语言本身的进化,库和包的增长,工具支持的完善,star项目和领域解决方案的涌现,平台... 查看详情
云原生之docker实战使用docker部署linux系统监控平台netdata
【云原生之Docker实战】使用Docker部署Linux系统监控平台Netdata一、Netdata介绍1.netdata简介2.netdatar特点二、检查本地Docker环境1.宿主机系统版本2.检查Docker版本3.检查docker状态三、安装docker-compose1.下载docker-compose二进制包2.给文件增加... 查看详情
云原生之docker实战使用docker部署linux面板服务mdserver-web
【云原生之Docker实战】使用Docker部署Linux面板服务mdserver-web一、mdserver-web介绍1.mdserver-web简介2.mdserver-web功能二、检查本地Docker环境1.检查本地Docker版本2.检查Docker状态3.检查dockercompose版本三、下载mdserver-web镜像四、部署mdserver-web... 查看详情
zabbix实战之部署篇zabbix使用snmp监控linux系统
【Zabbix实战之部署篇】Zabbix使用SNMP监控Linux系统一、SNMP协议介绍1.SNMP协议简介2.SNMP协议特点二、实践环境介绍三、检查Zabbix监控平台环境1.检查Zabbix相关组件容器状态2.检查Zabbix的首页四、被控端安装SNMP监控工具1.检查被控端服... 查看详情
linux环境部署node.js
介绍先前在阿里云ECS上部署Node.js,碰到不少坑,都是自己不仔细造成的,所以准备再部署一遍,并记录下来。我将我的服务器重置了,这次选择的是CentOS7.464位,上次的是7.2的。使用到的工具:Xshell5,链接服务器;Xftp5,上传工... 查看详情
如何在 Ubuntu/Linux 中部署 Node.js 应用程序?
】如何在Ubuntu/Linux中部署Node.js应用程序?【英文标题】:HowtoDeployNode.jsappinUbuntu/Linux?【发布时间】:2017-09-0213:10:35【问题描述】:哪个是在.net框架下开发的,不使用docker?感谢您度过了愉快的时光。【问题讨论】:在.net框架中... 查看详情
node.js实战一文带你开发博客项目之登录(前置知识)(代码片段)
...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.js(一ÿ... 查看详情
node.js部署到服务器之后台守护进程管理器forever
我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行。首先,安装Forever... 查看详情
jenkins实战之jenkins安装部署
上一小节介绍了Jenkins安装(Linux/uninx平台),这节我们讲讲Jenkins界面操作(包括系统设置,工具安装,插件管理,系统升级,安全设置等等操作); 登录jenkins首页,分别有以... 查看详情
node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)
Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。1.安装node.js下载对应版本的,网址:Download|Node.js;进行傻瓜式安装:最后点击install... 查看详情
node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)
Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。 1.安装node.js下载对应版本的,网址:https://nodejs.org/en/download/;进行傻瓜式安装:最... 查看详情
云原生之docker实战使用docker部署宝塔面板
【云原生之Docker实战】使用Docker部署宝塔面板一、宝塔面板介绍二、检查本地docker环境1.检查系统版本2.检查内核版本3.检查docker版本三、下载宝塔镜像四、部署宝塔面板1.创建挂载目录2.创建宝塔容器3.查看宝塔容器状态五、访问... 查看详情
实战node.js之get/post请求在web应用架构在客户端的使用(代码片段)
@[toc]GET/POST请求在许多情况下,我们的服务器需要处理用户的浏览器,例如表单提交。get/post请求通常用于向服务器提交表单。varhttp=require(http);varurl=require(url);varutil=require(util);http.createServer(function(req,res)res.writeHead(200,Content-Type: 查看详情
linux实战之ssl自签名证书(代码片段)
Linux实战之SSL自签名证书Linux的openssl生成自签名证书部署一个简单的tomcat服务使用nginx代理实现ssl访问1、Linux生成自签名证书1.1、生成带密码的私有秘钥文件使用带密码的私有秘钥文件时在祁东nginx时需要输入密码[root@localhostssl]#o... 查看详情
在 Linux 服务器上的何处部署 node.js 应用程序?
】在Linux服务器上的何处部署node.js应用程序?【英文标题】:Wheretodeploynode.jsappsonaLinuxserver?【发布时间】:2012-06-0317:11:50【问题描述】:我在Linux服务器上运行4个独立的Node.js应用程序,具有不同的端口和前面的代理。由于我(... 查看详情
node.js实战一文带你开发博客项目之koa2重构(实现session开发路由联调日志)(代码片段)
...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情