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

news/2024/10/23 7:16:49/

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。


http://www.ppmy.cn/news/1189403.html

相关文章

CentOS7非lvm给根分区扩容

首先查看现有磁盘信息和文件系统的信息 关闭虚拟机,右键虚拟机,点击设置,选中硬盘,右边点击拓展,然后给磁盘空间增加到指定的大小 打开虚拟机,查看扩容后的分区大小,此时会发现根分区大小并…

点云从入门到精通技术详解100篇-基于 3D 视觉信息的机械手抓取机械零部件

目录 前言 相关技术的国内外发展现状 点云配准 点云分割 点云位姿估计

GTS GtsUnofficialApisUsageTestCases Failed

GTS 测试GtsUnofficialApisUsageTestCases失败如下: junit.framework.AssertionFailedError: There are 102 violation(s) com.google.android.gm / Landroid/window/BackEvent;->getProgress()F / BLOCKED / LINKING com.google.android.gm / Landroid/window/…

error: src refspec main does not match any

实际就是如果把github上文件先下载在本地,在创建git目录,会将分支命名为master,而clone到本地分支会命名为main,这要提交会出错,这时候需要改名。 解决方案A-如果要将分支命名为master 运行git push -u origin maste…

Flutter 01 目录结构入门

一、Flutter目录结构: 二、Flutter入口文件、入口方法: 三、Flutter Demo: demo1: import package:flutter/material.dart;//MaterialApp 和 Scaffold两个组件装饰App void main() {runApp(MaterialApp(home: Scaffold(appBar: A…

linux中断下文工作队列之工作队列传参(中断七)

一、工作队列传参 在 Linux 内核的工作队列中,可以通过使用工作项的方式向工作队列传递参数。工作项是一个抽象的结构,可以用于封装需要执行的工作及其相关的参数。   首先我们定义工作项结构,如下所示,在结构体 struct work_da…

数据结构与算法—顺序表

目录 1.线性表 2.顺序表概念 3.实现顺序表 (1)声明结构体 (2)初始化 (3)打印数据 (4)销毁 (5)尾插&头插 尾插 判断是否扩容 头插 (6)尾删&头删 尾删 头删 (7)指定位置插入元素 (8)删除指定位置元素 (9)查找指定元素位置 (10)修改指定位置元素 完整…

一文带你了解自动化测试是什么?

本章主要讲解自动化测试的含义、分类、项目使用,以及自动化测试工具的优势。 一、自动化测试概述 1、什么是自动化测试? 自动化测试是软件测试活动中的一个重要分支和组成部分。随着软件产业的不断发展,市场对软件周期的要求越来越高&…