Nginx安装
官网:http://nginx.org/en/download.html 下载最新的稳定版本
环境准备
gcc
Nginx是使用C语言编写的程序,因此想要运行Nginx就需要安装一个编译工具。GCC就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了C语言。
# 查看gcc版本
gcc --version
yum install -y gcc
PCRE库
Nginx在编译过程中需要使用到PCRE库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。
# 查看pcre 是否安装
rpm -qa pcre pcre-devel
# 安装pcre
yum install -y pcre pcre-devel
zlib
zlib库提供了开发人员的压缩算法,在Nginx的各个模块中需要使用gzip压缩,所以我们也需要提前安装其库及源代码zlib和zlib-devel
rpm -qa zlib zlib-devel
yum install -y zlib zlib-devel
OpenSSL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
SSL:Secure Sockets Layer
安全套接协议的缩写,可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。
在Nginx中,如果服务器需要提供安全网页时就需要用到OpenSSL库,所以我们需要对OpenSSL的库文件及它的开发安装包进行一个安装。
rpm -qa openssl openssl-devel
yum install -y openssl openssl-devel
统一环境安装
rpm -qa gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
nginx安装
cd /opt
mkdir -p nginx/core
# 解压nginx到 nginx/core
tar -zxvf nginx-1.20.2.tar.gz
# 指定安装目录 默认在/usr/local/nginx
./configure --prefix=/usr/local/nginx
# 编译
make
# 安装
make install
# 查看nginx 版本
whereis nginx
cd /usr/local/nginx/sbin
./nginx -v
# 启动nginx
./sbin/nginx -c conf/nginx.conf
# 停止nginx
./sbin/nginx -s stop
Nginx启动/关闭
对于Nginx的启停在linux系统中也有很多种方式,这里介绍两种方式:
- Nginx服务的信号控制
- Nginx的命令行控制
信号控制
Nginx默认采用的是多进程
的方式来工作的,当将Nginx启动后,我们通过ps -ef | grep nginx
命令可以查看到如下内容:
从上图中可以看到,Nginx后台进程中包含一个master进程和多个worker进程,
- master进程主要用来管理worker进程,包含接收外界的信息,并将接收到的信号发送给各个worker进程,监控worker进程的状态,当worker进程出现异常退出后,会自动重新启动新的worker进程。
- worker进程则是专门用来处理用户请求的,各个worker进程之间是平等
的并且相互独立,处理请求的机会也是一样的。
信号 | 作用 |
---|---|
TERM / INT | 立即关闭整个服务 |
QUIT | "优雅"地关闭整个服务 |
HUP | 重读配置文件并使用服务对新配置项生效 |
USR1 | 重新打开日志文件,可以用来进行日志切割 |
USR2 | 平滑升级到最新版的nginx |
WINCH | 所有子进程不在接收处理新连接,相当于给work进程发送QUIT指令 |
调用命令为kill -signal PID
。signal:即为信号;PID即为获取到的master线程ID
kill -TERM PID / kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
kill -INT PID / kill -INT `cat /usr/local/nginx/logs/nginx.pid`
命令行控制
此方式是通过Nginx安装目录下的sbin下的可执行文件nginx来进行 Nginx状态的控制,我们可以通过nginx -h
来查看都有哪些参数可以用:
Nginx命令配置到系统环境
vim /etc/profile
在最后一行添加
export PATH=$PATH:/usr/local/nginx/sbin
source /etc/profile
nginx -V