基于NodeJS(7.6.0+)和KOA2搭建的Web应用框架
- nodeserver
- node_modules node模块,自行决定安装哪些模块
- koa
- koa-compress
- koa-mount
- koa-rewrite
- koa-router
- koa-static
- koa-vhost
- koa-views
- ....
- sbin 应用目录,启动和配置虚拟主机
- conf 配置目录
- extra 虚拟主机配置及实现
- vhost-default.js 默认虚拟主机,格式 vhost-${ServerAlias}.js
- conf.app.js 服务装载(端口监听、虚拟主机装载)
- conf.js HOST配置文件
- extra 虚拟主机配置及实现
- server.js 服务启动文件
- startup.sh Shell脚本,根据实际情况调整
- conf 配置目录
- node_modules node模块,自行决定安装哪些模块
{ // 主机配置 Host: { // 监听端口,值为数字或数组 // 如:3000、[3000, 3001, 3002] // 数组主要是方便Nginx做负载 listen: Number | Array // 虚拟主机列表配置 VirtualHosts: [ { // 管理员邮箱,如:admin@domain.com ServerAdmin: String // 服务名称,如:domain.com ServerName: String // 服务别名,如:domain.com ServerAlias: String // 站点根目录,如:/data/wwwroot/htdocs DocumentRoot: String // 动态模板文件目录,如:如:/data/wwwroot/NODE-TEMPLATE NodeTemplateRoot: String // Node应用业务模块 NodeModules: { // 业务模块部署根目录,如:/data/wwwroot/NODE-INF root: String // 业务模块别名,用于软链 // ln -s ${NodeModules.root} ${NODE_SERVER_ROOT}/app/${NodeModules.alias} alias: String } // 模板引擎,如:ejs TemplateEngine: String // 服务日志,未实现 ServerLog: { // 错误日志 error: String // 访问日志 access: String } // 静态服务器置 @see https://github.com/koajs/static StaticServer: { // Browser cache max-age in milliseconds. defaults to 0 maxage: Number // Allow transfer of hidden files. defaults to false hidden: Boolean // Default file name, defaults to 'index.html' index: String // If true, serves after yield next, // allowing any downstream middleware to respond first. defer: Boolean // Try to serve the gzipped version of a file automatically // when gzip is supported by a client and if the requested // file with .gz extension exists. defaults to true. gzip: Boolean } } ] } }