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

【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step5—Nginx安装

注意事项
本文基于 Ubuntu 22.04 LTS 适配,部分包名和配置与 RedHat/Rocky/CentOS 有差异,请勿直接复用其它系统命令。如遇疑难欢迎在
VX 或 QQ 群与作者交流。

附录:完整内容和源代码下载请参照

https://doc.janettr.com/

在这里插入图片描述

在大数据或私有云环境下,经常需要自建本地仓库,用于托管 DEB 包、离线二进制、补丁文件、容器镜像等。
Nginx 以高性能、低资源占用和目录索引能力,成为 Ubuntu 下构建本地仓库的首选。

1. 为什么选 Nginx 做静态仓库?

  • 更轻量,性能高:优于 Apache httpd,系统资源占用小
  • 默认支持目录索引:无需额外插件,直接浏览/下载所有静态文件
  • 部署简单,易于维护:一条命令即可安装,配置简洁明了
  • 灵活适配:可支持 DEB、RPM、二进制、容器镜像、ISO、Python 包等多种仓库场景

2. Nginx 安装(Ubuntu 22.04 专用)

2.1 安装命令

sudo apt update
sudo apt install -y nginx

与 RedHat/CentOS 完全不同!Ubuntu 下必须用 apt 安装 Nginx,不要用 yumdnfepel-release

2.2 检查版本

nginx -v

看到 nginx version: nginx/1.x.x 即为成功。

3. 仓库目录与权限配置

3.1 创建静态仓库根目录

sudo mkdir -p /data/modules

3.2 授权目录访问

sudo chmod -R 755 /data/modules
sudo chown -R www-data:www-data /data/modules

Ubuntu 默认 Nginx 运行用户为 www-data,不是 nginx!目录属主必须为 www-data,或至少有全员读/执行权限,否则 Nginx 会报
403 Forbidden。

4. Nginx 静态仓库配置

4.1 新建仓库专用配置文件

sudo vim /etc/nginx/conf.d/local_repo.conf

内容示例:

image-20250718165132972

server {listen 80 default_server;server_name _;location / {root /data/modules;autoindex on;autoindex_exact_size off;autoindex_localtime on;}error_page 404 /404.html;
}
  • 访问 http://your-server-ip/ 即可看到 /data/modules 下的所有文件和目录。

  • 可根据需求添加 HTTPS、账号认证等安全措施。

4.2 移除默认站点配置

sudo mv /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.bak

Ubuntu Nginx 默认站点配置在 /etc/nginx/sites-enabled/default,不是 /etc/nginx/conf.d/default.conf(RedHat/CentOS
路径),如不禁用会显示欢迎页或冲突!

5. 启动并验证 Nginx 服务

5.1 启动和自启动设置

sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx

nginx -t 检查配置语法是否正确,务必执行,避免配置出错导致服务无法重启。

5.2 检查运行状态

sudo systemctl status nginx

状态为 active (running) 即正常。

5.3 访问测试

  • 浏览器访问 http://your-server-ip/,可看到 /data/modules 下的全部内容和包文件。

  • 或命令行验证:

    curl -I http://localhost/
    

    返回 HTTP/1.1 200 OK 表示服务正常。

image-20250718165520616

6. 运维与常见问题

6.1 403 Forbidden/无法访问目录

最常见原因为目录权限或属主不对,务必确保 /data/moduleswww-data 或其它有读权限,检查命令:

ls -ld /data/modules

6.2 文件或目录不可见

  • 检查 Nginx 是否有权限递归访问所有父级目录
  • 确保 autoindex on; 配置无误
  • 没有 SELinux,无需 chconrestorecon 操作

Ubuntu 22.04 默认没有 SELinux,无需做任何 SELinux 权限设置(不要用 chconrestorecon),这与 RedHat/CentOS 完全不同。

6.3 端口防火墙设置

  • 如启用 UFW:

    sudo ufw allow 80/tcp
    
  • 公网环境请按实际安全策略放行端口

http://www.lryc.cn/news/606105.html

相关文章:

  • Qt 常用控件 - 3
  • vue-seamless-scroll 与 echarts 三联水球图循环滚动的渲染难题-出现短暂空白
  • iOS高级开发工程师面试——其他
  • Linux大页内存导致服务内存不足
  • Java——方法
  • 基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用
  • EEG手工特征提取总结
  • RagFlow本地源码部署(非Docker)
  • 现在有哪些广泛使用的时序数据库?
  • AWS高级解决方案架构师黄海波:GenAI 时代非结构化数据处理的实践与趋势洞察
  • Linux性能检测与调优
  • 解决SparkSQL创建出来的数据库hive中无法识别的问题
  • 切割液性能智能调控系统与晶圆 TTV 预测模型的协同构建
  • toFixed()方法的报错注意
  • Python 程序设计讲义(47):组合数据类型——字典类型:创建字典
  • MySQL常用函数总结
  • 2025年7月最新一区SCI-基尔霍夫定律优化算法Kirchhoff’s law algorithm-附Matlab免费代码
  • [硬件电路-109]:模拟电路 - 自激振荡器的原理,一种把直流能量转换成交流信号的装置!
  • 专题:2025半导体行业研究报告:从AI芯片到封测突围的生死局|附40+份报告PDF、数据汇总下载
  • Apifox 7 月更新|通过 AI 命名参数及检测接口规范、在线文档支持自定义 CSS 和 JavaScript、鉴权能力升级
  • 鸿蒙拉起系统定位和app授权定位
  • 光伏热斑误检率↓79%!陌讯多模态融合算法在智慧能源的落地优化
  • 当文档包含图文混排表格时,如何结合大模型(如DeepSeek-VL)和OCR提取数据
  • 一次 web 请求响应中,通常那个部分最耗时?
  • Flutter module 是如何被原生 Android 项目通过 Gradle 引入的
  • Flutter Chen Generator - yaml配置使用
  • 原生安卓与flutter混编的实现
  • 是否需要买一个fpga开发板?
  • 嵌入式硬件学习(十)—— LED驱动+杂项设备驱动
  • 【Unity】实现小地图