第二章 Nginx服务器的安装部署【上】
概述:正式开干,每天学一点
本章涉及内容
- 获取Nginx服务器安装文件的路径
- nginx服务器安装部署之前的准备工作
- Windows平台下nignx服务器的安装部署
- Linux平台下Nignx服务器的编译和安装
- 认识Nginx服务器的配置文件,以及如何进行基本配置
- 初步学习通过优化Nginx配置,提高Nginx服务器的性能
- 展示一个Nginx配置的完整实例
2.1、如何获取Nginx服务器安装文件
2.1.1、获取新版的Nginx服务器
地址:http://nginx.org/en/download.html
2.1.2、获取Nginx服务器的历史版本
2.2、安装nginx服务器和基本配置
2.2.1 window版本的安装
参考:http://blog.****.net/m0_37355951/article/details/78282124
2.2.2、Linux版本的编译和安装:准备工作
需要依赖工具和第三方库进行编译,采用GCC编译器, GCC的全称为GNU Compiler Collection
Automake工具:完成Makefile的工作(个人理解就是各种配置信息汇总)
第三库,pcre库(支持rewrite模块),zlib库(支持gzip模块)和openssl库(支持ssl模块)
在线安装:
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel
这里采用是阿里云centos服务进行安装
2.2.3、linux版本的编译和安装:nginx软件的自动脚本
将下载好nginx-1.13.6 .tar.gz文件上传到阿里云服务器,笔者采用是MobaXterm工具,有兴趣可以去官网下载
放置的目录在/home/下
创建一个编译目录()
# mkdir /home/Nginx_123/
# cp /home/nginx-1.13.6.tar.gz /home/Nginx_123/ 将文件复制到这个目录下
# cd /home/Nginx_123 切换到该目录下
# tar xf nginx-1.13.6.tar.gz 解压文件
查看文件结构
这是需要通过configure脚本生成Makefile文件
configure脚本支持很多选项
--prefix=<path> 指定Nginx软件的安装路径,此项如果未定默认为/usr/local/nginx/目录
其它可以参考文档
生成makeFile文件
# ./configure --prefix=/home/Nginx_123/nginx
在当前目录下生成一个Makefile文件
2.2.4、linux版本的编译和安装:Nginx源代码的编译和安装
保持当前目录下 /home/Nginx_123/nginx-1.13.6
#make //编译
编译完成后
#make install //安装
安装完成后,切换到安装目录 /home/Nginx_123/nginx
# cd ../nginx
如果安装有问题话,一般是缺少第三方依赖库,可以安装第三方库之后进行安装nginx
清除上一次安装记录
# rm -rf /home/Nginx_123/nginx/*
然后切换到/home/Nginx_123/nginx-1.13.6/
#cd /home/Nginx_123/nginx-1.13.6/
# make clean //清除
之后再进行
# make //编译
# make install //安装
2.3、Nginx服务的启停控制
2.3.1、Nginx服务的信号控制
其实就是发送命令,它通过pid,也就是进程唯一标识符,默认情况下会在安装目录下的logs目录中生成文件名为nginx.pid文件,此文件保存主进程的pid
如何找到pid
一种查看nginx.pid文件, # cat /home/Nginx_123/nginx/logs/nginx.pid
第二种通过linux平台下查看进程工具ps : # ps -ef |grep nginx
Nginx服务包含一个主进程(master process)和多个工作进程(worker process)
Nginx服务可接收的信号
TERM 或 INT :快速停止Nginx服务
QUIT : 平缓停止Nginx服务
HUP : 使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的“平滑重启”
USR1 : 重新打开日志文件,常用于日志切割
USR2: 使用新版本的Nginx文件启动服务,之后平缓停止原有的Nginx进程,也就是所谓的“平滑升级”
WINCH : 平缓停止工作线程, 用于Nginx服务器平滑升级
使用语法
kill SIGNAL PID (SIGNAL是上面信号一种, PID 为nginx主进程pid)
kill SIGNAL`cat filepath`(filepath nginx.pid文件路径)
2.3.2、Nginx服务启动
- -?,-h 显示该帮助信息
- -v : 打印版本号并退出
- -V : 打印版本号和配置并退出
- -t : 测试配置正确性并退出
- -q : 测试配置时只显示错误
- -s : signal向主进程发送信号
- -p : prefix 指定Nginx服务器路径前缀
- -c : filename 指定Nginx配置文件路径
- -g : directives 指定Nginx附加配置文件路径(全局的配置)
启动服务:(注意默认监听端口为80,确保80不被占用,要么修改配置文件监听端口号)
#./nginx
修改监听端口为8000
/home/Nginx_123/nginx/conf/nginx.conf 修改这个配置文件
:wq! 保存退出
#./nginx 启动没有日志输出说明启动成功
2.3.3 Nginx服务的停止
一种快速停止:stop,停所有工作
一种平缓停止:将当前工作做完,后停止
发送信号
# ./sbin/nginx -s quit
kill TERM | INT | QUIT `cat pid文件路径` : 注意是不是单引号 是就是mysql的对于名字冲突引起了符号` (键盘数字1前面按键~)
kill TERM | INT | QUIT PID
TERM 和INT信号用于快速停止,QUIT用于平缓停止
kill -9 | SIGKILL PID 强制关闭服务(不得已才为之)
2.3.4、Nginx服务的重启
平缓重启,如果配置文件没有问题,启动新的Nginx服务,然后平缓关闭旧的服务进程,如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx进程提供服务
kill -HUP `cat /home/Nginx_123/nginx/logs/nginx.pid`
2.3.5、Nginx服务器的升级
kill USR2 `cat pid文件路径` 用于发送平滑升级信号
kill WINCH `cat pid文件路径` 用于发送平滑停止旧服务信号
下节继续。。。。