Ubuntu 安装 Nginx

安装

安装前准备

bash 复制代码
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

这条命令安装必要的工具:

  • curl- 用于下载文件
  • gnupg2- GNU隐私保护工具,用于密钥管理
  • ca-certificates- 证书授权文件
  • lsb-release- 提供Linux发行版信息
  • ubuntu-keyring- Ubuntu的GPG密钥环

导入Nginx官方签名密钥

bash 复制代码
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
  1. 从nginx.org下载签名密钥
  2. 使用gpg进行解密(--dearmor)
  3. 将密钥保存到/usr/share/keyrings/nginx-archive-keyring.gpg

验证密钥

bash 复制代码
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

条命令会显示导入的密钥指纹,输出应包含完整的指纹 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62s,如下所示:

这是Nginx官方签名密钥的指纹,用于验证软件包的真实性。

设置稳定版Nginx仓库

bash 复制代码
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
  1. 添加Nginx官方稳定版仓库
  2. 使用之前导入的密钥进行签名验证
  3. lsb_release -cs会自动获取当前Ubuntu版本的代号

设置仓库优先级

bash 复制代码
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx

这条命令确保优先从Nginx官方仓库安装软件包,而不是 Ubuntu 自带的版本。

安装Nginx

bash 复制代码
sudo apt update
sudo apt install nginx

服务

1. 主配置文件目录

  • /etc/nginx/
    • nginx.conf(主配置文件)
    • conf.d/(额外的配置文件)
    • modules(动态模块)

2. 默认网页根目录

  • /usr/share/nginx/ 这是 Nginx 默认的网站根目录(root),存放静态网页文件(如 index.html)。

3. 日志文件目录

  • /var/log/nginx/
    • access.log(访问日志)
    • error.log(错误日志)

4. Nginx 可执行文件

  • /usr/sbin/nginx 这是 Nginx 的主程序(二进制文件)。

5. 默认服务管理

  • 启动/停止/重启 Nginx:
bash 复制代码
sudo systemctl start nginx    # 启动 
sudo systemctl stop nginx     # 停止 
sudo systemctl restart nginx  # 重启 
sudo systemctl reload nginx   # 重新加载配置(不中断服务) 
sudo systemctl status nginx   # 查看状态

6. 检查 Nginx 安装路径

如果想确认 Nginx 的安装路径,可以运行:

bash 复制代码
which nginx

通常会输出:

bash 复制代码
/usr/sbin/nginx

7. 检查 Nginx 版本和编译参数

bash 复制代码
nginx -V

这会显示 Nginx 的版本信息,以及编译时启用的模块(如 --with-http_ssl_module)。

相关推荐
C澒3 分钟前
AI 生码:A 类生码方案架构升级
前端·ai编程
前端Hardy25 分钟前
前端必看!LocalStorage这么用,再也不踩坑(多框架通用,直接复制)
前端·javascript·面试
前端Hardy25 分钟前
前端必看!前端路由守卫这么写,再也不担心权限混乱(Vue/React通用)
前端·javascript·面试
Soofjan41 分钟前
Go 内存回收-GC 源码1-触发与阶段
后端
shining44 分钟前
[Golang]Eino探索之旅-初窥门径
后端
Lee川1 小时前
从零构建现代化登录界面:React + Tailwind CSS 前端工程实践
前端·react.js
Awu12271 小时前
⚡精通 Claude 第 1 课:掌握 Slash Commands
前端·人工智能·ai编程
竹林8181 小时前
从ethers.js迁移到Viem:我在重构DeFi前端时踩过的那些坑
前端·javascript
掘金者阿豪1 小时前
Mac 程序员效率神器:6 个我每天都在用的 Mac 工具推荐(Alfred / Paste / PixPin / HexHub / iTerm2 /)
后端
码云之上1 小时前
上下文工程实战:解决多轮对话中的"上下文腐烂"问题
前端·node.js·agent