jk's notes
  • ch02 Nginx 服务器的安装部署

ch02 Nginx 服务器的安装部署

书中介绍了:

  • 获取安装文件
  • 安装前的准备工作
  • win 下安装
  • linux 下编译与安装
  • nginx 的基本配置

一般都用 docker 镜像来代替编译安装.

2.1 获取安装文件

官方提供 win 和 linux 两个版本. 官网为: https://nginx.org

下载地址 url: https://nginx.org/en/download.html

image-20231123181718961

页面中提供了:

  • 主线版本
  • 稳定版本
  • 历史版本 (注意, 早期没有 win 版本, 从 0.7.52 开始才有 win 版本)
  • 源码
  • 预编译包 (即已经编译好, 在各个 linux 发行版的仓库中可以下载)

预编译版 https://nginx.org/en/linux_packages.html

文档中提供了详细的安装步骤. 包括红帽系列, Debian, Ubuntu, SLES, Alpine 等发行版.

SLES 表示 SUSE Linux Enterprice Server.

2.2 安装与基本配置

分别介绍两个版本:

  • windows 的安装
  • linux 的安装

2.2.1 Windows 安装

直接下载即可, 解压后使用

注意双击运行即可, 不要用控制台运行, 否则终端会被阻塞.

同时, 退出程序不要使用 结束任务管理器的进程的方式, 否则 PID 无法删除会存在问题.

也不要双击两次运行, 否则会运行多个实例, 但只有一个 PID 有效.

image-20231124010310937

运行起来之后, 可以在主程序所在目录执行相关命令:

nginx -h # 获得帮助

image-20231124010440898

常用命令:

nginx -t # 检查编辑后的配置是否正确.
nginx -s reload # 使用新配置重启 nginx.
nginx -s quit # 结束 nginx, 之后 logs 目录下的 pid 文件会被删除.
nginx -s stop # 也会停止, 表现上与 stop 效果一样.

2.2.2 Linux 安装

Linux 安装又分为 2 种:

  1. 预编译版本
  2. 手动从源码编译

预编译版本的安装

直接在下载页面下方有预编译版本的链接:

image-20231124011959698

nginx: download

进入后会有各个版本的安装步骤说明. 例如红帽系列的安装步骤:

  1. 安装依赖工具
  2. 设置 yum 仓库的源
  3. 如果需要使用主线版本, 需要增加一个配置
  4. 使用 yum 来安装 nginx

image-20231124012251829

从源码编译安装

文档中也有介绍从源码编译安装. 书也详细的介绍了从源码编译安装.

image-20231124012645038

安装书中的介绍 (包括 Mastering Nginx 也有相关编译的介绍), 基本过程可以总结为:

  1. 安装必须的依赖
  2. 下载源码, 准备必要的文件夹路径
  3. 利用 configure 来生成 makefile
  4. 使用 make 命令编译
  5. 使用 make install 来安装

其实感觉 nginx 文档写的就很清楚了.

整理一个安装的步骤参考:

yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open open-ssl-devel
mkdir /nginx_src/ /nginx
cp ./nginx-x.x.x.tar.gz /nginx_src/
cd /nginx_src
tar xf nginx-x.x.x.tar.gz
cd nginx-x.x.x
./configure --prefix=/nginx
make
make install

如要卸载, 直接删除即可, 然后可以重新编译

rm -rf /nginx/*
cd /nginx_src/nginx-x.x.x
make clean
make 
make install

2.3 Nginx 服务的启动与停止

2.3.1 使用信号控制 (用得少)

win 与 linux 一样, pid 文件存储与 logs 目录下 (默认).

win 中

image-20231124015200822

而 linux 中这个是可以配置的, 可以通过查看配置文件获得. 默认配置文件在 /etc/nginx/nginx.conf

image-20231124015811449

在 Linux 上也可以使用 ps -ef | grep nginx 来查看 nginx 的 pid

image-20231124015918025

主进程可以接受的信号有:

信号作用
TERM 或 INT快速停止 Nginx.
QUIT平缓停止 Nginx.
HUP平滑启动. 使用新的配置启动, 然后旧的采用平缓停止.
USR1从新打开日志文件, 常用于日志切割.
USR2平滑升级, 使用新的 Nginx 文件启动服务, 平缓停止原有 Nginx 进程.
WINCH平缓定制 工作进程, 常用于平滑升级.

发送信号的有两种方法, 一种是使用 kill, 语法为:

kill <信号> <PID>
# 或
kill <信号> '<pid_file_path>'

2.3.2 使用 nginx 程序

nginx -s stop

可以使用 nginx -h 获得帮助.

2.3.3 nginx 服务的停止

停止分为平滑停止与立即停止.

2.3.4 nginx 服务的重启

2.3.5 nginx 服务的升级

Last Updated:
Contributors: jk