CentOS 7 源码部署 Nginx

news2024/11/24 9:06:53

文章目录

      • 1. 概述
      • 2. 部署示例
        • 2.1 下载和解压 Nginx 源码
        • 2.2 安装编译依赖包
        • 2.3 编译和安装
        • 2.4 启动 Nginx
        • 2.5 配置防火墙
        • 2.6 设置 Nginx 为系统服务
        • 2.7 配置访问
      • 3. 扩展知识

1. 概述

Nginx 是一款高性能的开源 Web 服务器软件,广泛应用于互联网领域。本篇博客将介绍如何在 CentOS 7 系统上通过源码编译的方式安装和配置 Nginx。

2. 部署示例

以下是在 CentOS 7 上源码部署 Nginx 的步骤示例:

2.1 下载和解压 Nginx 源码
  • 官方下载地址:https://nginx.org/en/download.html
    在这里插入图片描述

首先,将下载好的 Nginx 源码包移动到 /usr/local/src/ 目录,并解压:

下载nginx的源码包

wget https://nginx.org/download/nginx-1.21.6.tar.gz

解压

mv nginx-1.21.6.tar.gz /usr/local/src/ && cd /usr/local/src/
tar -zxvf nginx-1.21.6.tar.gz && cd nginx-1.21.6
2.2 安装编译依赖包

安装编译 Nginx 所需的依赖包,包括 gcc、pcre 和 zlib:

yum install -y gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
2.3 编译和安装

使用以下命令进行编译和安装 Nginx:

./configure --prefix=/usr/local/nginx
make && make install
2.4 启动 Nginx

进入 Nginx 安装目录,并启动 Nginx 服务:

cd /usr/local/nginx/sbin/
./nginx    # 启动

停止重启命令

./nginx -s stop    #快速停止
./nginx -s quit    #优雅关闭(退出前,完成已经接受的连接请求)
./nginx -s reload  #重新加载配置
2.5 配置防火墙

如果需要通过 HTTP 访问 Nginx,默认使用的是 80 端口。需要将该端口放行:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload
2.6 设置 Nginx 为系统服务

创建 Nginx 的服务脚本 /usr/lib/systemd/system/nginx.service,并设置开机自启动:

vim /usr/lib/systemd/system/nginx.service

在编辑器中输入以下内容:

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存并退出编辑器。

先停止nginx

./nginx -s stop    #快速停止

重新加载系统服务,并启动 Nginx:

systemctl daemon-reload			#重载nginx配置
systemctl start nginx.service	#启动
systemctl enable nginx.service	#开机自启动

重启与停止

systemctl restart nginx.service		#重启
systemctl stop nginx.service		#停止
2.7 配置访问

创建目录,新增html文件

mkdir -p /www/vod


#写入文件内容
cat > /www/vod/index.html <<EOF
this is josh  vod_web
EOF

编辑nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

修改server模块如下配置

    server {
        listen       8088;	#监听端口
        server_name  localhost;


        location / {

             root   /www/vod;	#html路径
             index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }


访问nginx
如果出现打不开,请关闭selinux,在尝试。
在这里插入图片描述

3. 扩展知识

在实践案例中,我们了解了如何通过源码编译的方式在 CentOS 7 上安装和配置 Nginx。除了上述示例中的步骤,还有一些其他值得注意的知识点:

  • Nginx 配置文件:Nginx 的主要配置文件位于 /usr/local/nginx/conf/nginx.conf,你可以根据需要进行修改和定制。
  • 虚拟主机配置:Nginx 支持虚拟主机,可以在配置文件中添加多个 server 块来配置不同的虚拟主机。
  • HTTPS 配置:如果需要启用 HTTPS 支持,可以在 Nginx 配置文件中配置 SSL 证书和密钥,并将监听端口改为 443。
  • 性能优化:Nginx 以其高性能而闻名,但在实际应用中,还可以进行一些性能优化的配置,例如启用缓存、调整工作进程数等。

总之,通过源码编译安装 Nginx 可以获得更高的灵活性和定制性。Nginx 是一个功能强大的 Web 服务器,适用于各种规模的网站和应用场景。

结束语:
希望本篇博客能够帮助你在 CentOS 7 上成功部署 Nginx,并为你的网站或应用提供高性能的服务。如果你对 Nginx 还有其他问题或需要进一步的帮助,请随时提问。感谢阅读本篇博客!

参考资料:

  • Nginx 官方网站
  • Nginx 文档
  • CentOS 官方网站

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

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

相关文章

pytest-fixtured自动化测试详解

fixture的作用 1.同unittest的setup和teardown,作为测试前后的初始化设置。 fixture的使用 1.作为前置条件使用 2.fixture的的作用范围 1.作为前置条件使用 pytest.fixture() def a():return 3def test_b(a):assert a3 2.fixture的作用范围 首先实例化更高范围的fixture…

Ghidra设置主题和字体大小

文章目录 Ghidra调整主题和字体大小设置主题和全局字体大小调整反汇编页面字体大小 Ghidra调整主题和字体大小 ghidra默认字体小,默认主题白色伤眼,摸索找到了设置主题和字体的方法 设置主题和全局字体大小 启动ghidra后选择edit>theme>configure 下拉框选择主题,右上…

maui下sqlite演示增删改查

数据操作类 有分页 todoitemDatabase.cs&#xff1a; using SQLite; using TodoSQLite.Models;namespace TodoSQLite.Data {public class TodoItemDatabase{SQLiteAsyncConnection Database;public TodoItemDatabase(){}// 初始化数据库连接和表async Task Init(){if (Databa…

科技提升安全,基于YOLOv7【tiny/yolov7/yolov7x】开发构建商超扶梯场景下行人安全行为姿态检测识别系统

在商超等人流量较为密集的场景下经常会报道出现一些行人在扶梯上摔倒、受伤等问题&#xff0c;随着AI技术的快速发展与不断普及&#xff0c;越来越多的商超、地铁等场景开始加装专用的安全检测预警系统&#xff0c;核心工作原理即使AI模型与摄像头图像视频流的实时计算&#xf…

计算机视觉项目实战-驾驶员疲劳检测

&#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; 本次博客内容将继续讲解关于OpenCV的相关知识 &#x1f389;作者简介&#xff1a;⭐️⭐️⭐️目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉深度学…

nrm 的使用 可以快速切换下载(npm)镜像,解决资源下载慢和运行失败

nrm是什么&#xff1f; 介绍 nrm(npm registry manager) 是 npm 的镜像源管理工具. 有时候国外资源太慢,使用 nrm 可以快速的在 npm 源之间切换 安装 npm install -g nrm 基本使用 查看可选择的源 nrm ls 切换到对应的镜像源 nrm use 对应的镜像 删除镜像源 nrm del 名字 …

翻译: LLM大语言模型图像生成原理Image generation

文本生成是许多用户正在使用的&#xff0c;也是所有生成式人工智能工具中影响最大的。但生成式人工智能的一部分兴奋点也在于图像生成。目前也开始出现一些可以生成文本或图像的模型&#xff0c;这些有时被称为多模态模型&#xff0c;因为它们可以在多种模式中操作&#xff0c;…

【Matlab】如何将二阶线性微分方程进行Laplace变换得到传递函数

二阶线性微分方程进行Laplace变换 前言正文代码实现 前言 二阶线性微分方程: 一个二阶线性微分方程通常可以写成如下形式: y ′ ′ ( t ) p ( t ) y ′ ( t ) q ( t ) y ( t ) f ( t ) y^{\prime \prime}(t)p(t) y^{\prime}(t)q(t) y(t)f(t) y′′(t)p(t)y′(t)q(t)y(t)f(…

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(三)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1&#xff09;定义模型结构2&#xff09;优化损失函数 3. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存3&#xff09;映射保存 相关其它博客工程源代码下载其它资料下载…

Redis系列之简单实现watchDog自动续期机制

在分布锁的实际使用中&#xff0c;可能会遇到一种情况&#xff0c;一个业务执行时间很长&#xff0c;已经超过redis加锁的时间&#xff0c;也就是锁已经释放了&#xff0c;但是业务还没执行完成&#xff0c;这时候其它线程还是可以获取锁&#xff0c;那就没保证线程安全 项目环…

文件操作及函数

什么是文件&#xff1f; 在程序设计中&#xff0c;文件有两种&#xff1a;程序文件和数据文件。 程序文件 包括源程序文件&#xff08;.c&#xff09;&#xff0c;目标文件&#xff08;.obj&#xff09;&#xff0c;可执行程序(.exe)。 数据文件 文件的内容不一定是程序&…

mybatis的快速入门以及spring boot整合mybatis(二)

需要用到的SQL脚本&#xff1a; CREATE TABLE dept (id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT ID, 主键,name varchar(10) NOT NULL UNIQUE COMMENT 部门名称,create_time datetime DEFAULT NULL COMMENT 创建时间,update_time datetime DEFAULT NULL COMMENT 修改…

P1044 [NOIP2003 普及组] 栈——卡特兰数

传送门&#xff1a; P1044 [NOIP2003 普及组] 栈 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1044 公式一&#xff1a;递推式(注意开 long long &#xff0c;然后 先乘完再除&#xff0c;防止下取整&#xff09; typedef long long ll;…

超过 1450 个 pfSense 服务器因错误链而遭受 RCE 攻击

在线暴露的大约 1450 个 pfSense 实例容易受到命令注入和跨站点脚本漏洞的攻击&#xff0c;这些漏洞如果链接起来&#xff0c;可能使攻击者能够在设备上执行远程代码。 pfSense 是一款流行的开源防火墙和路由器软件&#xff0c;允许广泛的定制和部署灵活性。 它是一种经济高效…

SpringCloud-高级篇(七)

前面在微服务里整合了Seata&#xff0c;下面利用Seata去解决分布式事务的问题&#xff0c;回去学习Seata中的四种解决方案 &#xff1a;首先学习XA模式 &#xff08;1&#xff09;XA模式 RM在前面讲的是资源管理器&#xff0c;在XA标准中RM都是由数据库来实现的&#xff0c;数…

【二分查找】【双指针】LeetCode:2565最少得分子序列

作者推荐 【动态规划】【广度优先】LeetCode2258:逃离火灾 本文涉及的基础知识点 二分查找算法合集 有序向量的二分查找&#xff0c;初始化完成后&#xff0c;向量不会修改。 双指针&#xff1a; 用于计算子字符串是s的字符串的子系列。 题目 给你两个字符串 s 和 t 。 你…

19.java绘图

A.Graphics类 Graphics类是java.awt包中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;或其他图形应用程序中进行绘制。该类通常与Component的paint方法一起使用&#xff0c;以在组件上进行绘制操作。 一些Graphics类的常见用法和方法&#xff1a; 在组…

Java基础语法之类和对象

类的定义 类就是对一个实体的属性功能进行描述 类的定义格式 首先要用到class关键字&#xff1b; 其次&#xff0c;类名采用大驼峰形式例如Dog ClassName Student…… 最后&#xff0c;类中包含该类的属性&#xff0c;即成员变量&#xff1b;以及该类的功能&#xff0…

HelpLook VS Confluence:知识管理方面谁更有优势?

多年来&#xff0c;在线协作和文档工具市场一直被Confluence所主导。Confluence由Atlassian于2004年创立&#xff0c;很迅速地成为企业寻求强大而全面的协作解决方案和知识管理的热门选择。然而&#xff0c;随着新工具如Notion和HelpLook的出现&#xff0c;市场格局发生了变化&…

各地加速“双碳”落地,数字能源供应商怎么选?

作者 | 曾响铃 文 | 响铃说 随着我国力争2030年前实现“碳达峰”、2060年前实现“碳中和”的“双碳”目标提出&#xff0c;为各地区、各行业的低碳转型和绿色可持续发展制定“倒计时”时间表&#xff0c;一场围绕“数字能源”、“智慧能源”、“新能源”等关键词的创新探索进…