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

相关推荐
maxmaxma1 分钟前
Konva 从入门到实践 - day1
前端
火星校尉8 分钟前
一场数据基建与消费场景的跨界实验
java·前端·数据库·python·php
risc12345628 分钟前
Lucene80DocValuesConsumer 五种类型源码阅读顺序
java·服务器·前端
小米渣的逆袭35 分钟前
Chrome Extension Script World(ISOLATED / MAIN)原理与适用场景
前端·javascript·chrome
开发小程序的之朴42 分钟前
认识安企CMS - 系统概述
nginx·golang·系统架构
雨师@1 小时前
go语言项目--实例化(图书管理)--005
开发语言·后端·golang
微信开发api-视频号协议1 小时前
Codex++安全边界探秘:从模型能力到风险防御
前端·安全·微信·企业微信
Aspiresky1 小时前
探索Rust语言之引用
开发语言·后端·rust
想你依然心痛1 小时前
AtomCode 在前端开发中的实战体验:React + TypeScript 项目开发实录
前端·react.js·typescript
冰暮流星1 小时前
flask之app.py讲解
后端·python·flask