Step5—Nginx安装
在大数据或私有云环境下,经常需要自建本地仓库,用于托管 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
2
警告
与 RedHat/CentOS 完全不同!Ubuntu 下必须用 apt
安装 Nginx,不要用 yum
、dnf
或 epel-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
2
警告
Ubuntu 默认 Nginx 运行用户为 www-data,不是 nginx
!目录属主必须为 www-data
,或至少有全员读/执行权限,否则 Nginx 会报
403 Forbidden。
# 4. Nginx 静态仓库配置
# 4.1 新建仓库专用配置文件
sudo vim /etc/nginx/conf.d/local_repo.conf
内容示例:
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;
}
2
3
4
5
6
7
8
9
10
11
12
13
- 访问 http://your-server-ip/ (opens new window) 即可看到
/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
2
3
提示
nginx -t
检查配置语法是否正确,务必执行,避免配置出错导致服务无法重启。
# 5.2 检查运行状态
sudo systemctl status nginx
状态为 active (running)
即正常。
# 5.3 访问测试
浏览器访问
http://your-server-ip/
,可看到/data/modules
下的全部内容和包文件。或命令行验证:
curl -I http://localhost/
1返回
HTTP/1.1 200 OK
表示服务正常。
# 6. 运维与常见问题
# 6.1 403 Forbidden/无法访问目录
警告
最常见原因为目录权限或属主不对,务必确保 /data/modules
为 www-data
或其它有读权限,检查命令:
ls -ld /data/modules
# 6.2 文件或目录不可见
- 检查 Nginx 是否有权限递归访问所有父级目录
- 确保
autoindex on;
配置无误 - 没有 SELinux,无需
chcon
、restorecon
操作
警告
Ubuntu 22.04 默认没有 SELinux,无需做任何 SELinux 权限设置(不要用 chcon
或 restorecon
),这与 RedHat/CentOS 完全不同。
# 6.3 端口防火墙设置
如启用 UFW:
sudo ufw allow 80/tcp
1公网环境请按实际安全策略放行端口
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16