在我们解决了服务器本身的功能、性能和可靠性的问题后,接着我们需要考虑一下代码部署的问题,以及服务器控制的问题。
一般而言,程序在服务器上有一个固定的部署目录,每次程序有更新后,都重新发布到部署目录里。而一旦完成部署后,一般也可以通过固定的服务控制脚本启动和停止服务。因此我们的服务器程序部署目录可以做如下设计。
- deploy/ - bin/ startws.sh killws.sh + conf/ config.json + lib/ daemon.js server.js
在以上目录结构中,我们分类存放了服务控制脚本、配置文件和服务器代码。
按以上目录结构分别存放对应的文件之后,接下来我们看看控制脚本怎么写。首先是start.sh
。
#!/bin/sh if [ ! -f "pid" ] then node ../lib/daemon.js ../conf/config.json & echo $! > pid fi
然后是killws.sh
。
#!/bin/sh if [ -f "pid" ] then kill $(tr -d '\r\n' < pid) rm pid fi
于是这样我们就有了一个简单的代码部署目录和服务控制脚本,我们的服务器程序就可以上线工作了。