我需要使用 Nginx 并启用 Lua 和一系列其他扩展,因此我按照以下说明进行操作https://openresty.org/并编译了 Nginx 的 OpenResty 变体。这个过程非常顺利,现在我在 上有了 nginx /usr/local/openresty/nginx/sbin/
。执行时报告的版本./nginx -v
是 1.9.3.2 - 正确。我可以通过执行 来启动并运行服务器./nginx
。
但是,我希望能够让它在启动时作为服务运行,就像通过 进行 vanilla Nginx 安装时通常的工作方式一样apt-get install nginx
。我还希望能够使用诸如service nginx status|restart|stop|reload
等命令。对于这种事情,我是一个彻头彻尾的新手。我曾尝试了解/etc/init.d/nginx
我的其他一台服务器上的脚本内容,但修改它以使其与当前安装兼容并不是我所理解的事情。我希望这里有人能帮忙。
答案1
现在,Ubuntu 给出了答案。
您正在使用 Ubuntu Linux。您已经拥有 upstart 或 systemd(在本例中为前者)。不要从编写 System 5rc
脚本开始。
因此,编写一个 upstart 作业文件。选择其中一个已经写好了对于 nginx,实际上是针对 OpenResty 进行修改。
Ubuntu 15.10 版 nginx-common 包附带一个 upstart 作业文件,开箱即用/etc/init/nginx.conf
;尽管Ubuntu 14.04 版 nginx-common 包落后了几个版本,并且没有。直接从 Debian 源代码存储库中提取文件相当容易(nginx.upstart
/etc/init/nginx.conf
)。nginx wiki 上还有一个作业文件。
应用你的 OpenResty 修改会产生以下结果:
#/etc/init/openresty.conf 文件 描述“OpenResty nginx” 在文件系统和静态网络上启动 在运行级别 [016] 停止 env DAEMON ='/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf' 期望分叉 重生 启动前脚本 [ -x $DAEMON ] || { 停止; 退出 0; } $DAEMON -t || {停止;退出 0;} 结束脚本 执行$DAEMON 停止前执行 $DAEMON -s quit
以通常的方式,将其用作新贵作业,与initctl start
、initctl stop
等一起使用。
当然,人们早就做过这些修改了。
进一步阅读
- 奥利弗·弗罗梅尔(2014年)。
/etc/init/openresty.conf
。Nginx 的 OpenResty 发行版。 管理杂志 19. - 爱德华·斯通(2013-02-18)。
nginx-upstart.conf
。 openresty-pypi。 GitHub。 - 乔治·沙马斯(2015-08-11)。
/etc/init/nginx.conf
.nginx 维基。