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 没有被排除。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS盒模型详解:从零开始理解margin、border、padding

引言 在CSS中,盒模型(Box Model)是一个非常基础且重要的概念。它定义了网页中每个元素如何占据空间以及元素间的关系。今天,我们就通过简单的例子来理解盒模型的构成。 盒模型的组成部分 CSS盒模型主要由四个部分组成(从外到内&#xff09…

DS图(中)(19)

文章目录 前言一、图的遍历广度优先遍历深度优先遍历 二、最小生成树Kruskal算法Prim算法两种方法对比 总结 前言 承上启下,我们来学习下图的中篇!!! 一、图的遍历 图的遍历指的是遍历图中的顶点,主要有 广度优先遍历 …

112,【4】攻防世界 web weak_auth

之前做过,回顾 进入靶场 输入admin 123456 不是,这也行,什么闭合方式,注释符都没用上 反而不自然了 不过输入admin 123456 纯属个人习惯 假如我没那么输,或者用户名,密码不是这两个,我该怎…

蓝桥杯更小的数(区间DP)

题目描述 小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串,下标从 0 到 n − 1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的…

109,【1】攻防世界 web 题目名称-文件包含

进入靶场 直接显示源代码 提示我们通过get方式传递名为filename的参数,同时给出了文件名check.php filenamecheck.php 显示使用了正确的用法,错误的方法 filename./check.php 还是一样的回显 傻了,题目名称是文件包含,需要用到…

71.StackPanel黑白棋盘 WPF例子 C#例子

就是生成黑白棋盘&#xff0c;利用该控件能自动排列的功能。用一个横向的StackPanel嵌套纵向的StackPanel&#xff0c;然后在里面添加设定好长和高的矩形。 因为StackPanel是按照控件的大小展示的。所以如果不设置长和宽。就会显示不出矩形。 <StackPanel Orientation"…

DeepSeek之python实现API应用

先创建一个API KEY https://platform.deepseek.com/api_keys python脚本实现 # Please install OpenAI SDK first: `pip3 install openai`from openai import OpenAIclient = OpenAI(api_key="", base_url="https://api.deepseek.com")response = cli…

MySQL中like模糊查询如何优化?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL中like模糊查询如何优化&#xff1f;】面试题。希望对大家有帮助&#xff1b; MySQL中like模糊查询如何优化&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在MySQL中&#xff0c;LIKE模糊查询通常会影…

通过docker安装部署deepseek以及python实现

前提条件 Docker 安装:确保你的系统已经安装并正确配置了 Docker。可以通过运行 docker --version 来验证 Docker 是否安装成功。 网络环境:保证设备有稳定的网络连接,以便拉取 Docker 镜像和模型文件。 步骤一:拉取 Ollama Docker 镜像 Ollama 可以帮助我们更方便地管理…

制作PE启动盘(内含Win11 iso镜像)

前言 本文用于记录制作PE启动盘过程&#xff0c;学习记录用&#xff0c;如有不对请指出&#xff0c;谢谢&#xff01; 参考视频&#xff1a; 1. 微PE下载&#xff1a;https://www.bilibili.com/video/BV1vT4y1n7JX/?spm_id_from333.788.top_right_bar_window_history.conte…

128陷阱

首先我们了解一下关于包装器类型 java是面向对象的语言&#xff0c;但基本类型并不是面向对象的&#xff0c;从而出现了包装器类型&#xff0c;并且包装器添加了更多的属性和方法。如我们在使用集合类型Collection的时候就一定要使用包装类型而非基本类型&#xff0c;它相当于将…

javaEE-9.HTML入门

目录 一.什么是html 二.认识html标签 1.标签的特点: 2.html文件基本结构 3.标签的层次结构 三、html工具 四、创建第一个文件 五.html常见标签 1标题标签h1-h6 2.段落标签:p 3.换行标签:br 4.图片标签:img 图片路径有1三种表示形式: 5.超链接:a 链接的几种形式: …

开源 GPU 集群管理器 GPUStack

GPUStack 是一个用于运行 AI 模型的开源 GPU 集群管理器。 项目地址&#xff1a;gpustack/gpustack: Manage GPU clusters for running AI modelshttps://github.com/gpustack/gpustackhttps://github.com/gpustack/gpustackhttps://github.com/gpustack/gpustack 核心特性 广…

电子电气架构 --- 汽车电子拓扑架构的演进过程

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

【Elasticsearch】range aggregation

Elasticsearch 的Range Aggregation是一种强大的桶聚合&#xff08;Bucket Aggregation&#xff09;工具&#xff0c;用于将文档按照数值范围进行分组&#xff0c;从而实现对数据的分段分析。以下是关于 Range Aggregation 的详细说明&#xff1a; 1.Range Aggregation 的基本概…

AI测试工程师成长指南:以DeepSeek模型训练为例

目录 引言&#xff1a;AI测试工程师的使命与挑战成长日记&#xff1a;从测试小白到AI测试专家核心能力&#xff1a;AI测试工程师的必备素养知识体系&#xff1a;技术栈与技能图谱AI测试工具全景&#xff1a;以DeepSeek为核心的工具链实战训练模式&#xff1a;以DeepSeek模型迭…

Spring Boot整合MQTT

MQTT是基于代理的轻量级的消息发布订阅传输协议。 1、下载安装代理 进入mosquitto下载地址&#xff1a;Download | Eclipse Mosquitto&#xff0c;进行下载&#xff0c;以win版本为例 下载完成后&#xff0c;在本地文件夹找到下载的代理安装文件 使用管理员身份打开安装 安装…

Elasticsearch 开放推理 API 增加了 Azure AI Studio 支持

作者&#xff1a;来自 Elastic Mark Hoy Elasticsearch 开放推理 API 现已支持 Azure AI Studio。在此博客中了解如何将 Azure AI Studio 功能与 Elasticsearch 结合使用。 作为我们持续致力于为 Microsoft Azure 开发人员提供他们选择的工具的一部分&#xff0c;我们很高兴地宣…

【EdgeAI实战】(2)STM32 AI 扩展包的安装与使用

【EdgeAI实战】&#xff08;1&#xff09;STM32 边缘 AI 生态系统 【EdgeAI实战】&#xff08;2&#xff09;STM32 AI 扩展包的安装与使用 【EdgeAI实战】&#xff08;2&#xff09;STM32 AI 扩展包的安装与使用 1. STM32Cube.AI 简介1.1 STM32Cube.AI 简介1.2 X-CUBE-AI 内核引…

MySQL的 MVCC详解

MVCC是多版本并发控制&#xff0c;允许多个事务同时读取和写入数据库&#xff0c;而无需互相等待&#xff0c;从而提高数据库的并发性能。 在 MVCC 中&#xff0c;数据库为每个事务创建一个数据快照。每当数据被修改时&#xff0c;MySQL不会立即覆盖原有数据&#xff0c;而是生…