**
Linux(centos8.0)下nginx安装与配置
大家确保各自环境,我的Linux版本为centos8.0,不同版本可能存在版本问题,make时一直报错
**
一、环境准备
1.安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:
yum install gcc-c++
2.安装PCRE pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:
yum install -y pcre pcre-devel
3、安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
4、安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
二、下载并解压Nginx压缩包
在这里可以去nginx官网下载->nginx官网,也可以直接使用wget命令下载,指令如下所示(请根据自己的需求进行下载):
wget http://nginx.org/download/nginx-1.17.6.tar.gz
将下载的压缩包进行解压并移动(注意不要将解压后的文件名改为nginx),指令如下所示(请根据自己的位置进行修改):
tar -zxvf nginx-1.17.6.tar.gz
mv nginx-1.17.6 /usr/local
三、编译并安装
由于nginx默认配置的是 80 端口,所以大家请先确保 80 端口没有被占用(netstat -nlp |grep :80)
进入nginx-1.17.6目录,在解压后的nginx-1.17.6中,执行 ./configure 使用默认配置
如果你在执行 ./configure 时报错,请先确保之前的环境都已安装,如果都安装了还报错,那么你就要考虑是不是你所安装的nginx版本与你的Linux版本不兼容问题。
执行编译并安装命令
make && make install
至此都没有报错的话,那么恭喜你,nginx已成功安装,返回上一级目录,就会发现多了nginx目录,接下来,启动nginx。
四、启动Nginx
进入/usr/local/nginx/sbin目录,输入./nginx即可启动nginx
浏览器输入:http://localhost
五、Nginx常用命令(启动、重启、关闭、检查)
提示:我的nginx安装目录为:/usr/local/nginx
(一)Nginx 自身 命令
1.启动
1.直接启动
进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx
或者直接
/usr/local/nginx/sbin/nginx
2.指定配置文件方式启动
进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
或者
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2.检查nginx配置文件
进入nginx目录
cd /usr/local/nginx/sbin
检查配置文件是否有语法操作
./nginx -t
或者显示指定配置文件
./nginx -t -c /usr/local/nginx/conf/nginx.conf
如果配置文件存在语法错误,会有相应的提示信息,正常我们修改配置后,先进行检查,然后在进行重启
3.平滑的重启,修改配置后,重新加载配置
进入nginx目录
cd /usr/local/nginx/sbin
执行重载命令
./nginx -s reload
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
1.Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原 配置文件进行工作(因为worker未受到影响)
2.Nginx启动新的worker进程,采用新的配置文件
3.Nginx将新的请求分配新的worker进程
4.Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
5.重复上面过程,知道全部旧的worker进程都被关闭掉。
所以,重启之后,master的进程号不变,worker的进程号会改变
4.关闭nginx
进入nginx目录
cd /usr/local/nginx/sbin
快速停止nginx
./nginx -s stop
完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
./nginx -s quit
5.reopen重新打开日志文件
进入nginx目录
cd /usr/local/nginx/sbin
重新打开日志文件
./nginx -s reopen
二、其他命令重启、关闭nginx
查看进程号,下图 master的为主进程号
ps -ef | grep nginx
从容停止Nginx
kill -QUIT 主进程号
快速停止Nginx
kill -TERM 主进程号
强制停止Nginx
pkill -9 nginx
平滑重启nginx:
kill -HUP 主进程号
三、Nginx配置使用详解
参考:https://blog.csdn.net/qq_46312987/article/details/118895520