总结摘要
install-nginx.sh 是一个用于快速安装 Nginx官方最新稳定版的 Shell 脚本,支持主流 Linux发行版,自动配置官方软件源和 GPG密钥。
install-nginx.sh - Nginx 官方源快速安装脚本
脚本功能
install-nginx.sh 是一个一键式 Nginx官方版本安装脚本,支持 Ubuntu、Debian、CentOS、RHEL、AlmaLinux、Rocky Linux、SUSE、openSUSE、Alibaba Cloud Linux、Anolis OS等主流 Linux发行版。脚本自动添加 Nginx官方 APT/YUM/Zypper软件源,导入 GPG签名密钥,安装最新稳定版 Nginx并配置开机自启。
核心特性:
- 智能识别操作系统类型和版本
- 自动添加 Nginx官方软件源
- 支持 stable(稳定版)和 mainline(开发版)
- 导入官方 GPG签名确保安全性
- 自动启动服务并设置开机自启
- 跨平台兼容性强
脚本依赖
系统工具依赖
根据操作系统不同:
Debian/Ubuntu系列:
apt:包管理工具curl:下载工具apt-key:GPG密钥管理lsb_release:获取系统版本信息
RHEL/CentOS系列:
SUSE/openSUSE系列:
环境变量依赖
本脚本无需预设环境变量。
内置配置说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Nginx 官方软件源
# Ubuntu/Debian:
deb http://nginx.org/packages/$OS/ $(lsb_release -cs) nginx
# CentOS/RHEL:
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$major_version/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
# GPG密钥
https://nginx.org/keys/nginx_signing.key
|
参数用法
本脚本无命令行参数,直接执行完整安装流程。
使用方法
快速安装与使用
下载脚本:
1
2
3
| bash <(curl -sL sc.eli1.top) install-nginx download
# 或备用地址
bash <(curl -sL download.elisky.cn) install-nginx download
|
执行安装:
1
| sudo ./install-nginx.sh
|
验证安装:
1
2
3
| nginx -version
systemctl status nginx
curl http://localhost
|
典型使用场景
场景 1:快速部署 Web服务器
1
2
3
| sudo ./install-nginx.sh
# 网站根目录:/usr/share/nginx/html
# 配置文件:/etc/nginx/nginx.conf
|
场景 2:配置反向代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| cat > /etc/nginx/conf.d/proxy.conf <<EOF
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend:8080;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
}
}
EOF
sudo nginx -t && sudo systemctl reload nginx
|
实际应用场景
- Web 服务器部署:快速搭建静态网站或动态应用前端
- 反向代理:为后端应用提供统一的访问入口
- 负载均衡:分发流量到多个应用服务器
- SSL 终止:处理 HTTPS加密,减轻后端压力
- API网关:统一管理和路由 API请求
注意事项
版本选择
- stable:生产环境推荐,稳定性好
- mainline:新功能测试,适合开发环境
防火墙配置
1
2
3
4
5
6
7
8
| # Ubuntu (ufw)
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
# CentOS (firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
|
SELinux配置(CentOS/RHEL)
1
2
3
4
5
| # 允许 Nginx网络访问
setsebool -P httpd_can_network_connect 1
# 允许访问用户主目录
setsebool -P httpd_enable_homedirs 1
|