当前位置: 首页 > news >正文

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

相关文章:

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 仓库 …...

深入理解Java对接DeepSeek

其实,整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。 1.获取 KEY https://platform.deepseek.com/transactions 直接付款就是了(现在官网暂停充值2025年2月7日&#xf…...

flutter isolate到底是啥

在 Flutter 中,Isolate 是一种实现多线程编程的机制,下面从概念、工作原理、使用场景、使用示例几个方面详细介绍: 概念 在 Dart 语言(Flutter 开发使用的编程语言)里,每个 Dart 程序至少运行在一个 Isol…...

深入剖析 Apache Shiro550 反序列化漏洞及复现

目录 前言 一、认识 Apache Shiro 二、反序列化漏洞:隐藏在数据转换中的风险 三、Shiro550 漏洞:会话管理中的致命缺陷 四、漏洞危害:如多米诺骨牌般的连锁反应 五、漏洞复现:揭开攻击的神秘面纱 (一&#xff0…...

计算机毕业设计——Springboot的简历系统

📘 博主小档案: 花花,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 花花在深度学习任务中展现出卓越的能力,包括但不限于java、python等技术。近年来,花花更…...

【kubernetes组件合集】深入解析Kubernetes组件之三:client-go

深入解析Kubernetes组件之三:client-go 目录 深入解析Kubernetes组件之三:client-go 引言 1. client-go简介 2. client-go的功能 2.1 资源操作 2.2 资源监听 2.3 认证和授权 2.4 错误处理和重试 2.5 扩展性和定制化 3. 使用client-go与Kubern…...

线程池-抢票系统性能优化

文章目录 引言-购票系统线程池购票系统-线程池优化 池化 vs 未池化 引言-购票系统 public class App implements Runnable {private static int tickets 100;private static int users 10000;private final ReentrantLock lock new ReentrantLock(true);public void run() …...

WebSocket 握手过程

文章目录 1. WebSocket 握手过程概述2. 客户端发送握手请求3. 服务器响应握手请求4. 客户端验证握手响应5. 建立 WebSocket 连接6. 安全性与注意事项7. 应用示例 在现代 Web 开发中,WebSocket 协议因其高效的实时通信能力而被广泛应用。WebSocket 允许客户端和服务器…...

VMware 虚拟机 ubuntu 20.04 扩容工作硬盘

一、关闭虚拟机 关闭虚拟机参考下图,在vmware 调整磁盘容量 二、借助工具fdisk testubuntu ~ $ df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 388M 3.1M 385M 1% /run /dev/sda5 …...

备战蓝桥杯:二分算法之牛可乐和魔法封印问题

这道题就是一道简单的模板题&#xff0c;我们分析一下&#xff01;&#xff0c;首先我们要找大于等于x的起始位置 我们还是用两个指针&#xff0c;left指向1&#xff0c;right指向n&#xff0c;如果a[mid]<x left mid1 如果a[mid]>x 就让right mid 如果数组全是小于x…...

普通用户授权docker使用权限

1、检查docker用户组 sudo cat /etc/group |grep docker 若显示&#xff1a;docker:x:999: # 表示存在否则创建docker用户组&#xff1a; sudo groupadd docker2、查看 /var/run/docker.sock 的属性 ll /var/run/docker.sock 显示&#xff1a; srw-rw---- 1 root root 0 1月…...

【实战篇】DeepSeek + ElevenLabs:让人工智能“开口说话”,打造你的专属语音助手!

最近,AI语音合成技术真是火得不行,各种“开口脆”的AI声音层出不穷,听得我直呼“这也太像真人了吧!” 作为一个科技爱好者,我当然不能错过这股潮流,这不,最近就沉迷于用 DeepSeek 和 ElevenLabs 这两款神器,捣鼓各种人声音频,简直停不下来! 先来科普一下这两位“主角…...

Vision Transformer:打破CNN垄断,全局注意力机制重塑计算机视觉范式

目录 引言 一、ViT模型的起源和历史 二、什么是ViT&#xff1f; 图像处理流程 图像切分 展平与线性映射 位置编码 Transformer编码器 分类头&#xff08;Classification Head&#xff09; 自注意力机制 注意力图 三、Coovally AI模型训练与应用平台 四、ViT与图像…...

LabVIEW国内外开发的区别

LabVIEW作为全球领先的图形化编程平台&#xff0c;在国内外工业测控领域均占据重要地位。本文从开发理念、技术生态、应用深度及自主可控性四个维度&#xff0c;对比分析国内外LabVIEW开发的差异&#xff0c;并结合国内实际应用场景&#xff0c;探讨其未来发展趋势。 ​ 一、开…...

【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列

系列文章目录 &#x1f380;&#x1f380;&#x1f380; .NET开源 ORM 框架 SqlSugar 系列 &#x1f380;&#x1f380;&#x1f380; 文章目录 系列文章目录一、并发累计&#xff08;累加&#xff09;1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…...

淘宝App交易链路终端混合场景体验探索

如何应对产品形态与产品节奏相对确定情况下转变为『在业务需求与产品形态高度不确定性的情况下&#xff0c;如何实现业务交付时间与交付质量的确定性』。我们希望通过混合架构&#xff08;Native 业务容器 Weex 2.0&#xff09;作为未来交易终端架构的重要演进方向&#xff0c…...

数据中心网络监控

数据中心是全球协作的特定设备网络&#xff0c;用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。 对于任何利用IT基础设施的企业来说&#xff0c;数据中心都是运营的核心&#xff0c;它本质上为整个业务网络托管业务应用程序和存储空间。数据中心可以是任…...

【含开题报告+文档+PPT+源码】基于springboot的汽车销售管理系统的设计与实现

开题报告 本论文聚焦于基于SpringBoot框架构建的汽车销售管理系统&#xff0c;该系统旨在赋能汽车销售企业实现一体化、智能化的业务运营与管理。管理员作为系统的核心员工群体&#xff0c;其功能权限深度集成并涵盖了登录认证、公告发布、人力资源调配、商品品牌管控、车辆信…...

flink cdc2.2.1同步postgresql表

目录 简要说明前置条件maven依赖样例代码 简要说明 在flink1.14.4 和 flink cdc2.2.1下&#xff0c;采用flink sql方式&#xff0c;postgresql同步表数据&#xff0c;本文采用的是上传jar包&#xff0c;利用flink REST api的方式进行sql执行。 前置条件 1.开启logical 确保你…...

rebase和merge

rebase 和merge区别&#xff1a; rebase变基&#xff0c;改变基底&#xff1a;rebase会抹去提交记录。 git pull 默认merge&#xff0c;git pull --rebase 变基 rebase C、D提交属于feature分支&#xff0c;是基于master分支&#xff0c;在B提交额外拉出来的&#xff0c;当…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南&#xff0c;适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者&#xff0c;都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...