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)。

相关推荐
Mr -老鬼11 分钟前
Rust适合干什么?为什么需要Rust?
开发语言·后端·rust
GDAL12 分钟前
NGINX njs 全解析:从基础配置到高级特性实战
nginx·njs
123445228 分钟前
Agent入门实战-一个题目生成Agent
人工智能·后端
Hilaku30 分钟前
我用 Gemini 3 Pro 手搓了一个并发邮件群发神器(附源码)
前端·javascript·github
IT_陈寒30 分钟前
Java性能调优实战:5个被低估却提升30%效率的JVM参数
前端·人工智能·后端
快手技术31 分钟前
AAAI 2026|全面发力!快手斩获 3 篇 Oral,12 篇论文入选!
前端·后端·算法
颜酱33 分钟前
前端算法必备:滑动窗口从入门到很熟练(最长/最短/计数三大类型)
前端·后端·算法
8***f39534 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
用户2986985301436 分钟前
C#: 如何自动化创建Word可填写表单,告别手动填写时代
后端·c#·.net
全栈前端老曹41 分钟前
【包管理】npm init 项目名后底层发生了什么的完整逻辑
前端·javascript·npm·node.js·json·包管理·底层原理