CentOS 7 编译安装 Nginx

CentOS 7 编译安装 Nginx

    • 背景
    • 下载 Nginx 源码包
    • 安装依赖包
    • 编译
    • 添加环境变量
    • 添加守护
    • 查考文献

背景

一开始使用 docker 搭建了一个 web 服务器,但是由于 docker 不太方便的部署 TLS 证书,故使用 Nginx 做反向代理,实现 https 连接。

下载 Nginx 源码包

Nginx 主要提供两个版本,分别为:Mainline version 与 Stable version,前面是主线版本,有新的特性会在此版本中体现,但是 BUG 的出现的可能性也会比 稳定版本高,故以下使用写这篇博客下最新的稳定版作为演示。
image.png

由红框中指出的是 Linux 下,应该下载的源码包,获取它的下载链接。
然后在服务器上先进入系统的源代码存放处,在下载源码包,解压并进入:

cd /usr/local/src
curl -LO https://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.20.2

安装依赖包

  1. 安装编译环境
yum -y install gcc gcc-c++
  1. 如果要使用 rewrite、ssl 与 gzip 功能,则需要 pcre、openssl、zlib 依赖包
yum -y install pcre pcre-devel openssl openssl-devel zlib zlib-devel

编译

./configure --prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module

命令解释

配置选项功能
-prefix指定安装路径
–with-http_ssl_module支持 HTTPS 协议
–with-http_v2_module支持 HTTP/2
–with-http_realip_module从指定请求头获取客户端 IP 地址

执行完上面的命令后,可以开始进行正式的编译了

make && make install

如果你的服务器配置较高,可以使用多线程编译 在 make 后添加 -j3 参数

make -j3 && make install

添加环境变量

如果使用 bash shell,则使用以下命令:

echo 'export PATH="/usr/local/nginx/sbin:$PATH"' >> ~/.bashrc
source ~/.bashrc

如果使用 zsh shell,则使用:

echo 'export PATH="/usr/local/nginx/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

添加守护

使用 vim 在 /etc/systemd/system/ 文件夹下,添加 nginx.service。vim /etc/systemd/system/nginx.service
然后将如下所示的内容复制粘贴到该文件中并保存(vim 编辑器先按 ESC 再输入 :wq):

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID[Install]
WantedBy=multi-user.target

运行以下命令,将 systemd 重新读取新的配置内容

systemctl daemon-reload

以下命令,都是用来管理 Nginx 服务的:
随系统启动服务

systemctl enable nginx

启动 Nginx

systemctl start nginx

停止 Nginx

systemctl stop nginx

重载 Nginx

systemctl reload nginx

查考文献

[1] OSFERE. (2022.2.2). 如何在 CentOS 上编译安装及配置最新版 Nginx. Tech Trends. Retrieved from https://osfere.com/linux/how-to-build-install-and-configure-latest-nginx-on-centos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#进阶实践项目(俄罗斯方块)

CSharp进阶实践项目--俄罗斯方块 1.需求分析 2.复用贪吃蛇开始等场景切换的代码 (自己写一遍,不难!!!) 入口: 更新接口: Game 类: BeginOrEndBaseScene 类:…

【Flink】Flink 中的时间和窗口之窗口API使用

1. 窗口的API概念 窗口的API使用分为按键分区和非按键分区,在定义窗口操作之前,首先就要确定好是基于按键分区Keyed的数据流KeyedStream来开窗还是基于没有按键分区的DataStream上开窗。 1.1 按键分区窗口(Keyed Windows) 按键…

Android视角看鸿蒙第六课(module.json5中的各字段含义之pages)designWidth的用法

Android视角看鸿蒙第六课(module.json5中的各字段含义之pages) 导读 前面几篇文章,我们陆续分析了entry->src->main下的module.json5中的各个字段的含义及作用。目前剩余pages和abilities两个字段,本篇文章一起来了解pages。 过程有错…

用Stable Diffusion生成同角色不同pose的人脸

随着技术的不断发展,我们现在可以使用稳定扩散技术(Stable Diffusion)来生成同一角色但不同姿势的人脸图片。本文将介绍这一方法的具体步骤,以及如何通过合理的提示语和模型选择来生成出更加真实和多样化的人脸图像。 博客首发地…

【Python】进阶学习:一文解决如何从指定的源目录中,挑选出符合条件的文件,并将这些文件复制到目标目录中

【Python】进阶学习:一文解决如何从指定的源目录中,挑选出符合条件的文件,并将这些文件复制到目标目录中 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化…

音频剪辑软件评测,哪一款最适合你?

“音频剪辑小白求解!我正在制作一部个人纪录片,拍摄了很多原始音频素材,但是需要进行剪辑和整理才能使用。我完全不懂音频剪辑,请问有没有简单易懂的教程或者方法,帮助我快速上手并完成剪辑工作呢?” 随着…

5_相机标定_3_calibrateCamera()例子

上次介绍了calibrateCamera()接口参数,这次实际调用。 程序中所用标准标定板。 一、图片预处理 使用的图片原像素是3072*2048,即600万像素,处理起来不快;改成了560*420,即20万像素。调用opencv接口如下: //…

阿里通义灵码体验

点击访问体验 之前有体验过github的代码助手,奈何收费了,上周发现有一个免费的代码助手。 下载安装 vscode 搜索扩展 TONGYI Lingma 安装完成后登陆即可体验 写注释让他写代码 根据上下文自动补充 这里我只写了一个方法名,getAgencyList…

linux安装erlang

摘要 Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。 环境准备 系统环境 使用命令:uname -a 或者 uname -r,执行后如下&a…

浅谈SQL注入漏洞原理及利用方式

1.SQL注入 原理: 在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的恶意“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。漏洞产生于脚本,注入是针对数据库进行。 …

Javaweb的学习21_CSS_属性

CSS的属性 (常用)属性: 1. 字体、文本 font-size:字体大小 color:文本颜色 text-align:文本的对齐方式 line-height:行高 2. 背景 background:是个复合属性 3. 边框 border:设置边框&#xff0c…

WordPress自动生成原创文章插件

WordPress作为最受欢迎的内容管理系统之一,为博客和网站的搭建提供了便捷的解决方案。而在内容创作方面,自动生成原创文章的插件为WordPress用户提供了更为高效的选项。 什么是WordPress自动生成原创文章插件? WordPress自动生成原创文章插件…

【NLP学习记录】One-Hot编码

1. One-Hot编码概念 one-hot编码的基本思想是将每个类别映射到一个向量,其中只有一个元素的值为1,其余元素的值为0。这样,每个类别之间相互独立,不存在顺序或距离关系。 举例:对于三个类别的情况,可以使用…

基于协同过滤的毕业生就业推荐系统python+django+flask

功能: 管理员:主页、个人中心、求职者管理、企业管理、招聘信息管理、就业信息管理、面试邀请管理、就业签约管理、投递的简历管理、系统管理 企业:主页、个人中心、求职者管理、招聘信息管理(可看见所有的招聘信息。发布招聘信息…

三 C#插入排序算法

简介 插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 插入排序实现原理 插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 具体实现步骤…

【iOS】Blocks

文章目录 前言一、什么是Blocks二、Blocks模式1.Block语法2.Block类型变量3.截获自动变量值4.__block说明符5.截获的自动变量 三、Blocks的实现1.Block的实质__main_block_impl_0Block对象的实现结构体初始化 2.截获自动变量值3.__block说明符4.Block存储域5.__block变量存储域…

数据结构——lesson10排序之插入排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

python之数据类型转换

基本数据类型转换 Python 中基本数据类型转换的方法有下面几个。 方法说明int(x [,base ])将x转换为一个整数float(x )将x转换到一个浮点数complex(real [,imag ])创建一个复数str(x )将对象 x 转换为字符串repr(x )将对象 x 转换为表达式字符串eval(str )用来计算在字符串中…

Linux的背景介绍

1.Linux的发展史 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯本纳第克特托瓦兹&#xff08…

【源码阅读】evmⅠ

代码位置如下: 参考link 以太坊中有一个很重要的用途是智能合约,而其中evm模块是实现了执行智能合约的虚拟机。evm可以逐条解析执行智能合约的指令。 evm中的核心对象是EVM,代表一个以太坊虚拟机。其内部主要依赖:解释器Interore…