centos系统源码编译安装nginx,并编写服务脚本

1.安装编译所需的依赖项:

复制代码
yum install -y gcc pcre-devel openssl-devel zlib-devel

2.下载 Nginx 源代码:

复制代码
wget http://nginx.org/download/nginx-1.21.3.tar.gz
tar -xf nginx-1.21.3.tar.gz
cd nginx-1.21.3

3.配置编译选项并进行编译和安装:

复制代码
./configure --prefix=/usr/local/nginx --with-http_ssl_module make
make install

4.创建 Nginx 服务脚本:

复制代码
nano /etc/systemd/system/nginx.service
-----------------------------------------------------------------------------------------

在编辑器中,将以下内容粘贴到文件中:
````service
[Unit]
Description=Nginx HTTP Server
After=network.target

[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
KillMode=process
Restart=on-failure
RestartSec=3s

[Install]
WantedBy=multi-user.target
```

其中:

[Unit] 部分,我们指定了服务的描述和依赖关系。Description 字段是对服务的简要描述。After 字段指定在启动服务之前需要等待的目标,这里是 network.target,表示在网络服务启动之后才启动 Nginx。

[Service] 部分,我们定义了服务的启动、重启和停止的行为。ExecStart 字段指定启动服务时要运行的命令。这里是 /usr/local/nginx/sbin/nginx,它将启动 Nginx。ExecReload 字段指定重新加载配置文件时要运行的命令,这里是 /usr/local/nginx/sbin/nginx -s reload,它将重新加载 Nginx 的配置文件,以便应用任何更改。ExecStop 字段指定停止服务时要运行的命令,这里是 /usr/local/nginx/sbin/nginx -s stop,它将停止 Nginx。

KillMode=process 表示在停止服务时,使用 SIGTERM 信号终止 Nginx 进程。

Restart=on-failure 表示如果服务启动失败,将自动尝试重新启动。

RestartSec=3s 表示在重新启动服务之前等待的时间间隔。

[Install] 部分,我们指定了服务的安装位置。WantedBy=multi-user.target 表示服务将在多用户模式下启动。

5.保存并关闭文件。

6.启用并启动 Nginx 服务:

复制代码
systemctl enable nginx
systemctl start nginx

现在,您已经成功地在 CentOS 7 上通过源码编译安装了 Nginx,并创建了一个服务脚本来管理 Nginx 服务。可以使用 sudo systemctl start nginx 启动服务,使用 sudo systemctl stop nginx 停止服务,使用 sudo systemctl restart nginx 重启服务。网页服务器应该已经可用并正在监听端口 80。

相关推荐
Maple_land6 分钟前
Linux复习:系统调用与fork
linux·运维·服务器·c++·centos
无聊的小坏坏24 分钟前
Poll 服务器实战教学:从 Select 迁移到更高效的多路复用
linux·服务器·poll·io多路复用
WAsbry42 分钟前
InputConnection机制与跨进程文本操作的工程实践
android·linux
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [kernel]cpu
linux·笔记·学习
WAsbry1 小时前
从一个Bug看Android文本编辑的设计缺陷
android·linux
大聪明-PLUS1 小时前
Linux 中 timeout、watch 和 at 的指南:管理命令执行时间
linux·嵌入式·arm·smarc
想唱rap2 小时前
Linux开发工具(4)
linux·运维·服务器·开发语言·算法
weixin_537765802 小时前
【Nginx优化】性能调优与安全配置
运维·nginx·安全
robin59113 小时前
Linux-通过端口转发访问数据库
linux·数据库·adb
视觉AI3 小时前
如何查看 Linux 下正在运行的 Python 程序是哪一个
linux·人工智能·python