将 nginx 注册为系统服务
nginx 提供了 -s signal
命令行参数让我们对其进行操作。我们可以很方便地利用 -p prefix
参数指定启动路径来启动多个完全隔离的 master 进程;还可以使用 -c filename
显式指定不同的配置文件。
由于 prefix
的路径一般都比较长, reload 或者 reopen nginx master 进程就会比较不方便。此时可以采用我在 在 OS X 中使用 OpenResty - 3.快捷方式 中提到的自建快捷方式的形式来简化这些操作。
更一般的,在服务器上我们会采用操作系统提供的标准服务的方式来进行这些简化。当然,这种方法一般仅针对一个 nginx master 进程进行操作。
本文将介绍在多个操作系统上将 nginx 注册为服务的方式(其实,也没有那么多啦)。
1. Mac OS X
参照 在 OS X 中使用 OpenResty - 2. 配置 OpenResty 环境 进行配置即可。
2. CentOS
根据 CentOS Nginx的一个初始化脚本(用于启动、停止、查看状态) 一文提供的方法,我整理了代码到 gist 上,只需要将 nginxd
下载到 /etc/init.d
并执行 addnginxservice
脚本即可。
下面的代码自动帮你做了上面的事:
wget --no-check-certificate https://gist.githubusercontent.com/zrong/9c7dfce8f274ee451188/raw/77eada5f92dd5583838390f26cc9790b00e63137/nginxd
wget --no-check-certificate https://gist.githubusercontent.com/zrong/9c7dfce8f274ee451188/raw/a0084d1ae6d5175c913e4593c99d493487d14c75/addnginxservice && source addnginxservice
3. Ubuntu
已经都是 Ubuntu了,自然是直接 apt-get 啦。这个没什么好说的。
4. Windows
nginx 的 Windows 二进制包并没有提供注册成为服务的功能。官方提供的方法和 Linux 相同,都是使用命令行参数进行操作。例如下面的 来自官方wiki 的方法,进入 nginx 文件夹,启动nginx进程:
cd nginx/
start nginx.exe
使用下面的命令查看 nginx 进程是否正在运行:
tasklist /fi "imagename eq nginx.exe"
关闭 nginx 进程:
nginx.exe -s quit
nginx 并不是为 windows 开发的,windows 版本的作用是为了方便在 windows 上工作的程序员们使用 nginx 。因此,nginx 好像并没有什么需要成为一个服务的动力。尽管 Running as a service.
出现在了 Possible future enhancements
列表中。
如果一定要在 windows 下将其注册为服务的话,把 Nginx 创建为 Windows 的一个服务 (原文)一文提供了一种方式。这是一篇写于 2009 年的文章,我并没有在我的 Windows 8.1 上尝试,因为我直接使用 Vagrang 了。
(全文完)
- 文章ID:2218
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/register-nginx-as-a-service/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。