Linux系统安装Nginx详解(适用于CentOS 7)

目录

1. 更新系统包

2. 安装EPEL仓库

3. 安装Nginx

4. 启动Nginx服务

5. 设置Nginx开机自启

6. 检查Nginx状态

7. 配置防火墙

8. 访问Nginx默认页面

9. 配置Nginx(可选)

10. 重启Nginx

解决步骤

1. 检查系统版本

2. 移除错误的 Nginx 仓库

3. 添加正确的 Nginx 官方仓库


在CentOS系统上安装Nginx的步骤如下:

1. 更新系统包

首先,确保系统包是最新的:

sudo yum update -y

2. 安装EPEL仓库

Nginx在默认的CentOS仓库中不可用,因此需要安装EPEL(Extra Packages for Enterprise Linux)仓库:

sudo yum install epel-release -y

3. 安装Nginx

安装EPEL仓库后,使用以下命令安装Nginx:

sudo yum install nginx -y

4. 启动Nginx服务

安装完成后,启动Nginx服务:

sudo systemctl start nginx

5. 设置Nginx开机自启

为了让Nginx在系统启动时自动启动,运行以下命令:

sudo systemctl enable nginx

6. 检查Nginx状态

确认Nginx服务是否正常运行:

sudo systemctl status nginx

7. 配置防火墙

如果系统启用了防火墙,需要允许HTTP(80端口)和HTTPS(443端口)流量:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

8. 访问Nginx默认页面

在浏览器中输入服务器的IP地址或域名,例如:

http://your_server_ip

如果看到Nginx的欢迎页面,说明安装成功。

9. 配置Nginx(可选)

Nginx的配置文件位于 /etc/nginx/nginx.conf,站点配置文件通常放在 /etc/nginx/conf.d/ 目录下。你可以根据需要编辑这些文件来配置Nginx。

10. 重启Nginx

修改配置后,重启Nginx以使更改生效:

sudo systemctl restart nginx

总结

通过以上步骤,你已经在CentOS系统上成功安装并配置了Nginx。你可以根据需要进一步配置Nginx来托管网站或应用程序。

可能遇到的问题(报错了怎么办?)

错误一

如果你在 第一步更新系统包  时报错:

repo 1.5 kB/s | 1.9 kB 00:01 Errors during downloading metadata for repository 'nginx-stable': - Status code: 404 for http://nginx.org/packages/centos/3/x86_64/repodata/repomd.xml (IP: 52.58.199.22) Error: Failed to download metadata for repo 'nginx-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

从错误信息来看,nginx-stable 仓库的 URL 似乎有问题,导致无法下载元数据。

如果你正在使用 CentOS 7 或 CentOS 8,请按照以下步骤修复问题并正确安装 Nginx:


解决方案一:

1. 检查系统版本

确认你的 CentOS 版本:

cat /etc/centos-release
  • 如果你使用的是 CentOS 3,建议升级到 CentOS 7 或更高版本,因为 CentOS 3 已经停止支持。

  • 如果你使用的是 CentOS 7 或 CentOS 8,请继续以下步骤。


2. 移除错误的 Nginx 仓库

如果系统中存在错误的 nginx-stable 仓库配置,需要先移除它:

sudo rm -f /etc/yum.repos.d/nginx-stable.repo

3. 添加正确的 Nginx 官方仓库

根据你的 CentOS 版本,添加正确的 Nginx 官方仓库。

对于 CentOS 7:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://nginx.org/packages/centos/7/x86_64/

解决方案二:

这个错误通常是因为 nginx-stable 仓库的 URL 地址不正确,导致无法下载其元数据文件(repomd.xml)。

  1. 编辑 nginx-stable 仓库配置文件

    使用编辑器打开仓库配置文件:

    sudo vi /etc/yum.repos.d/nginx.repo
    
  2. 检查并修改 URL

    确保 [nginx-stable] 部分的 URL 正确。比如,仓库的 URL 可能应该是:

    [nginx-stable]
    name=nginx-stable repo
    baseurl=http://nginx.org/packages/centos/7/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    

    这里的 baseurl 为 CentOS 7 版本。如果你的操作系统版本不同(如 CentOS 8 或其他),请根据实际版本修改 URL。

  3. 保存并退出: 按 Esc 键后,输入 :wq 保存并退出编辑器。

  4. 清理 YUM 缓存: 更新仓库配置后,清理 YUM 缓存:

    sudo yum clean all
    
  5. 再次尝试更新: 重新运行更新命令:

    sudo yum update -y
    

解决方案三(推荐):

使用官方仓库(或其他可靠源)

如果问题依旧,你可以尝试使用官方的 Nginx 仓库。以下是官方安装步骤:

  1. 下载并安装 Nginx 官方的 YUM 仓库:

    sudo curl -o /etc/yum.repos.d/nginx.repo https://nginx.org/packages/mainline/centos/nginx.repo
    
  2. 之后再次运行更新命令:

    sudo yum update -y
    

上述三种方案任选其一即可

总结:

  1. 检查和修复 Nginx 仓库的 URL 配置。
  2. 清理缓存并重新尝试更新。
  3. 如果 URL 无法使用,尝试使用 Nginx 官方仓库。

错误二

如果你在 第二步安装EPEL仓库  时报错:

Error: Problem: problem with installed package epel-aliyuncs-release-8-15.1.al8.noarch - package epel-aliyuncs-release-8-15.1.al8.noarch from @System conflicts with epel-release provided by epel-release-8-21.el8.noarch from epel - package epel-aliyuncs-release-8-15.1.al8.noarch from alinux3-updates conflicts with epel-release provided by epel-release-8-21.el8.noarch from epel - conflicting requests (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

你遇到的错误是因为系统中已经安装了一个与 epel-release 冲突的包:epel-aliyuncs-release,它来自阿里云的 EPEL 仓库。这两个包提供的内容相同,因此导致了冲突。

解决方法:

两种方法可以解决这个问题:

1. 使用 --allowerasing 选项强制替换冲突的包

你可以通过添加 --allowerasing 参数来允许卸载冲突的包,并安装正确的 epel-release 包。命令如下:

sudo yum install epel-release -y --allowerasing

2. 卸载冲突的 epel-aliyuncs-release

如果你希望安装官方的 epel-release 包,可以先卸载 epel-aliyuncs-release 包,然后再安装 epel-release 包:

  1. 卸载 epel-aliyuncs-release

    sudo yum remove epel-aliyuncs-release -y
    
  2. 安装官方的 epel-release

    sudo yum install epel-release -y
    

上述两种方法任选其一即可

错误三

如果你在 第三步安装Nginx  时报错:

sudo yum install nginx -y Warning: failed loading '/etc/yum.repos.d/nginx.repo', skipping. Last metadata expiration check: 10:48:16 ago on Thu 06 Feb 2025 12:28:01 PM CST. All matches were filtered out by exclude filtering for argument: nginx Error: Unable to find a match: nginx

你遇到的错误提示表明 yum 无法找到 nginx 包,可能有以下几种原因:

可能的原因:

  1. nginx.repo 文件缺失或配置错误
    • 提示 Warning: failed loading '/etc/yum.repos.d/nginx.repo', skipping.,这意味着 nginx.repo 文件缺失或配置不正确。
  2. 排除过滤(exclude filtering)
    • 错误中提到 All matches were filtered out by exclude filtering for argument: nginx,这通常意味着 yum 配置了某些排除规则,导致它无法找到 nginx 包。

解决方案:

1. 检查并配置 Nginx 仓库

首先,确保正确配置了 Nginx 的仓库。

  • 创建或编辑 Nginx 仓库配置文件

    使用以下命令创建或编辑 /etc/yum.repos.d/nginx.repo 文件:

    sudo vi /etc/yum.repos.d/nginx.repo
    

    添加以下内容,确保仓库地址正确。根据你的操作系统版本选择合适的 URL:

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    

    这里的 baseurl 是针对 CentOS 7 的。如果你使用的是 CentOS 8 或其他版本,请根据你的系统调整 baseurl 地址。

  • 保存并退出:按 Esc 键,然后输入 :wq 保存并退出编辑器。

2. 清理缓存并重新运行安装命令

完成仓库配置后,清理 yum 缓存并重新运行安装命令:

sudo yum clean all
sudo yum install nginx -y

3. 检查 exclude 配置

如果你的 yum 配置中使用了排除规则,可能会导致 nginx 包被忽略。你可以检查 yum 配置文件是否有与 nginx 相关的排除规则。

  • 打开 /etc/yum.conf 文件:

    sudo vi /etc/yum.conf
    
  • 查找是否有 exclude 关键字,如果有,确保没有排除 nginx 或修改此行配置。

  • 如果有排除规则,可以注释掉相关行,或将 nginx 从排除列表中移除。

4. 安装 EPEL 仓库(如果尚未安装)

有时,nginx 可能在 EPEL 仓库中。如果你还没有安装 EPEL 仓库,可以通过以下命令安装:

sudo yum install epel-release -y
sudo yum install nginx -y

总结:

  • 检查并修复 Nginx 仓库配置,确保正确配置了 nginx.repo 文件。
  • 清理缓存并重新安装。
  • 检查排除配置,确保 nginx 没有被排除。

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

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

相关文章

第5章 数据库系统(选择|案例|论文)(重点★★★★★)

5.1 数据库管理系统1 数据库是长期存储在计算机内的、有组织的、可共享的数据集合,数据库系统是指在计算机信息系统中引入数据库后的系统,一般由数据库、数据库管理系统 (DataBaseManagement System,DBMS)、应用系统、数据库管理员(DataBase…

jenkins备份还原配置文件

下载ThinBackup插件 方式1 从插件市场直接下载 Manage Jenkins->Manage Plugins->可选插件搜索 注意:有时可能因为网络或者版本问题下载不了,好像是默认下载最新版本,可选择手动安装! 方式二 手动安装插件 点击查看手…

Vue笔记(八)

一、Pinia (一)手动添加Piaia到Vue项目 1.安装Pinia:使用包管理器进行安装,在项目目录下运行 npm install pinia 或 yarn add pinia ,为项目引入Pinia状态管理库。 2.创建Pinia实例:在项目的JavaScript代…

vue纯静态实现 视频转GIF 功能(附源码)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、实现后的效果二、使用步骤1.引入库2.下载or复制出来js3. 前端实现 总结 前言 一天一个小demo 今天来一个vue纯静态实现 视频转GIF 功能 上一篇我们讲到了…

嵌入式八股文面试题(二)C语言算法

相关概念请查看文章&#xff1a;C语言概念。 1. 如何实现一个简单的内存池&#xff1f; 简单实现&#xff1a; #include <stdio.h> #include <stdlib.h>//内存块 typedef struct MemoryBlock {void *data; // 内存块起始地址struct MemoryBlock *next; // 下一个内…

【Python】集合

个人主页&#xff1a;GUIQU. 归属专栏&#xff1a;Python 文章目录 1. 集合的创建2. 集合的基本操作2.1 访问集合元素2.2 添加元素2.3 删除元素 3. 集合的数学运算3.1 交集&#xff08;& 或 intersection() 方法&#xff09;3.2 并集&#xff08;| 或 union() 方法&#xf…

Flutter_学习记录_基本组件的使用记录_2

1. PopupMenuButton的使用 代码案例&#xff1a; import package:flutter/material.dart;// ----PopupMemuButtonDemo的案例---- class PopupMemuButtonDemo extends StatefulWidget {const PopupMemuButtonDemo({super.key});overrideState<PopupMemuButtonDemo> crea…

基于java手机销售网站设计和实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

初识计算机网络

从此篇我将开始网络新篇章&#xff01; 1. 网络发展史 最初的计算机之间相互独立存在&#xff0c;每个计算机只能持有自己的数据&#xff0c;数据无法共享。此时的计算机为独立模式 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#x…

PyTorch 中 `torch.cuda.amp` 相关警告的解决方法

在最近的写代码过程中&#xff0c;遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。 警告内容 警告 1: torch.cuda.amp.autocast FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) i…

【PS 2022】Adobe Genuine Service Alert 弹出

电脑总是弹出Adobe Genuine Service Alert弹窗 1. 不关掉弹窗并打开任务管理器&#xff0c;找到Adobe Genuine Service Alert&#xff0c;并右键进入文件所在位置 2 在任务管理器中结束进程并将文件夹中的 .exe 文件都使用空文档替换掉 3. 打开PS不弹出弹窗&#xff0c;解决&a…

Vue2生命周期面试题

在 Vue 2 中&#xff0c;this.$el 和 this.$data 都是 Vue 实例的属性&#xff0c;代表不同的内容。 1. this.$el this.$el 是 Vue 实例的根 DOM 元素&#xff0c;它指向 Vue 实例所控制的根节点元素。在 Vue 中&#xff0c;el 是在 Vue 实例创建时&#xff0c;指定的根元素&…

unity 安装Entities

因为Entities目前不支持用资源名动态加载资源&#xff01;没错&#xff0c;AssetsBundle或Addressables都不能用于Entities&#xff1b;也就意味着现阶段不能用Entities开发DLC或热更游戏。 Entities必须使用SubScene&#xff0c;而SubScene不能从资源动态加载&#xff0c;路被…

基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试

基于 PyTorch 的树叶分类任务&#xff1a;从数据准备到模型训练与测试 1. 引言 在计算机视觉领域&#xff0c;图像分类是一个经典的任务。本文将详细介绍如何使用 PyTorch 实现一个树叶分类任务。我们将从数据准备开始&#xff0c;逐步构建模型、训练模型&#xff0c;并在测试…

团结引擎 Shader Graph:解锁图形创作新高度

Shader Graph 始终致力于为开发者提供直观且高效的着色器构建工具&#xff0c;持续推动图形渲染创作的创新与便捷。在团结引擎1.4.0中&#xff0c;Shader Graph 迎来了重大更新&#xff0c;新增多项强大功能并优化操作体验&#xff0c;助力开发者更轻松地实现高质量的渲染效果与…

C# OpenCV机器视觉:模仿Halcon各向异性扩散滤波

在一个充满创意与挑战的图像处理工作室里&#xff0c;阿强是一位热情的图像魔法师。他总是在追求更加出色的图像效果&#xff0c;然而&#xff0c;传统的图像处理方法有时候并不能满足他的需求。 有一天&#xff0c;阿强听说了 Halcon 中的各向异性扩散滤波功能&#xff0c;它…

超详细的数据结构3(初阶C语言版)栈和队列。

文章目录 栈和队列1.栈1.1 概念与结构1.2 栈的实现 2. 队列2.1 概念与结构2.2 队列的实现 总结 栈和队列 1.栈 1.1 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进行插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶&#xff0c;另…

利用邮件合并将Excel的信息转为Word(单个测试用例转Word)

利用邮件合并将Excel的信息转为Word 效果一览效果前效果后 场景及问题解决方案 一、准备工作准备Excel数据源准备Word模板 二、邮件合并操作步骤连接Excel数据源插入合并域预览并生成合并文档 效果一览 效果前 效果后 场景及问题 在执行项目时的验收阶段&#xff0c;对于测试…

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码及效果展示

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例&#xff0c;使用Arduino语言&#xff1a; 硬件连接 INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RG…

用户认证综合实验

实验需求 需求一&#xff1a;根据下表&#xff0c;完成相关配置 需求二&#xff1a;配置DHCP协议&#xff0c;具体要求如下 需求三&#xff1a;防火墙安全区域配置 需求四&#xff1a;防火墙地址组信息 需求五&#xff1a;管理员 为 FW 配置一个配置管理员。要求管理员可以通…