ch02 Nginx 服务器的安装部署
书中介绍了:
- 获取安装文件
- 安装前的准备工作
- win 下安装
- linux 下编译与安装
- nginx 的基本配置
一般都用 docker 镜像来代替编译安装.
2.1 获取安装文件
官方提供 win 和 linux 两个版本. 官网为: https://nginx.org
下载地址 url: https://nginx.org/en/download.html
页面中提供了:
- 主线版本
- 稳定版本
- 历史版本 (注意, 早期没有 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 有效.
运行起来之后, 可以在主程序所在目录执行相关命令:
nginx -h # 获得帮助
常用命令:
nginx -t # 检查编辑后的配置是否正确.
nginx -s reload # 使用新配置重启 nginx.
nginx -s quit # 结束 nginx, 之后 logs 目录下的 pid 文件会被删除.
nginx -s stop # 也会停止, 表现上与 stop 效果一样.
2.2.2 Linux 安装
Linux 安装又分为 2 种:
- 预编译版本
- 手动从源码编译
预编译版本的安装
直接在下载页面下方有预编译版本的链接:
进入后会有各个版本的安装步骤说明. 例如红帽系列的安装步骤:
- 安装依赖工具
- 设置 yum 仓库的源
- 如果需要使用主线版本, 需要增加一个配置
- 使用 yum 来安装 nginx
从源码编译安装
文档中也有介绍从源码编译安装. 书也详细的介绍了从源码编译安装.
安装书中的介绍 (包括 Mastering Nginx 也有相关编译的介绍), 基本过程可以总结为:
- 安装必须的依赖
- 下载源码, 准备必要的文件夹路径
- 利用
configure
来生成makefile
- 使用
make
命令编译 - 使用
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 中
而 linux 中这个是可以配置的, 可以通过查看配置文件获得. 默认配置文件在 /etc/nginx/nginx.conf
在 Linux 上也可以使用 ps -ef | grep nginx
来查看 nginx 的 pid
主进程可以接受的信号有:
信号 | 作用 |
---|---|
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 服务的停止
停止分为平滑停止与立即停止.