【Linux】CentOS 7 安装 nginx 1.18.x

1.事前准备

关于虚拟机的下载和安装,可以参考我之前的博客↓
VMware下载,安装及创建虚拟机
VMware安装Centos7 究极逐步详细图文流程

还有就是nginx源码包的下载:
官网中最新版本是1.19.6 ,而稳定版最新是1.18.0,这里我们选择稳定版:
下载地址nginx: download(官网)
下载链接nginx-1.18.0
在这里插入图片描述
当然你也可以使用wget直接下载到Linux上:

wget http://nginx.org/download/nginx-1.18.0.tar.gz

2.开始安装

  1. 依赖环境安装
    这里依赖环境还比较多,需要安装四个:

第一个安装 gcc 的环境
c语言 的代码,编译环境一般都是直接使用gcc来完成,比如redis也是一样,安装命令如下:

yum install gcc-c++

如果出现make编译失败的问题:
之前我们在安装redis时,使用make命令编译时就发生了错误,调查后发现原因是安装的redis版本比较高,而cent os 的gcc环境版本又比较低,最后升级了gcc的版本才编译成功,由于这里我已经升级过了,这里直接附上升级的命令,还比较长:

yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash

其中最后 scl enable devtoolset-9 bash 这句命令是切换gcc版本的,但这个切换是临时的,当你重启linux系统,再确认gcc版本,他会回到4.8.5版本(CentOS 7 默认版本),我们可以使用如下命令永久切换gcc版本:

echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

其实也就是在profile文件中加了一句命令:source /opt/rh/devtoolset-9/enable
最后使用 gcc -v 命令来确认当前gcc的版本:
在这里插入图片描述

第二个安装 PCRE 的环境
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。
注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。

安装命令如下:

yum install -y pcre pcre-devel

在这里插入图片描述

第三个安装 zlib 的环境
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip(压缩),所以需要在 linux 上安装 zlib 库。
zlib-devel也是同理。

安装命令如下:

yum install -y zlib zlib-devel

在这里插入图片描述

第四个安装 OpenSSL 的环境
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。
openssl-devel依旧同理可得。

安装命令如下:

yum install -y openssl openssl-devel

在这里插入图片描述

  1. 解压文件
    使用命令:
tar -zxvf nginx-1.18.0.tar.gz

不指定解压目录就默认解压到当前目录下:nginx-1.18.0
也可以在命令最后使用 -C 加上 路径 的方式指定解压的目录。
在这里插入图片描述

  1. 编译安装
    首先我们进入之前解压的目录nginx-1.18.0
    在这里插入图片描述
    在此目录中有一个可执行程序:configure
    我们会使用此程序为我们先创建一个安装的配置文件:makeFile,那么什么是makeFile文件呢?

Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

这里构建makeFile的最简洁的命令是:

./configure

但是这里我们不使用这种简单的,我们会在此命令后边加上一些参数值,当然,不带参数值用的就是默认值,如下:

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-pcre

这里再附上指定对应参数值的作用:

参数值 作用域
–prefix=/usr \ 指向安装目录
–sbin-path=/usr/sbin/nginx \ 指向(执行)程序文件(nginx)
–conf-path=/etc/nginx/nginx.conf \ 指向配置文件
–error-log-path=/var/log/nginx/error.log \ 指向log
–http-log-path=/var/log/nginx/access.log \ 指向http-log
–pid-path=/var/run/nginx/nginx.pid \ 指向pid
–lock-path=/var/lock/nginx.lock \ 安装文件锁定,防止安装文件被别人利用,或自己误操作。
–user=nginx \ 指向当前用户
–group=nginx \ 指向当前用户组
–with-http_ssl_module \ 启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl)
–with-http_flv_module \ 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
–with-http_stub_status_module \ 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
–with-http_gzip_static_module \ 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
–http-client-body-temp-path=/var/tmp/nginx/client \ 设定http客户端请求临时文件路径
–http-proxy-temp-path=/var/tmp/nginx/proxy \ 设定http代理临时文件路径
–http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ 设定http fastcgi临时文件路径
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定http uwsgi临时文件路径
–http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定http scgi临时文件路径
–with-pcre 启用pcre库

在这里插入图片描述
OK,构建完成makeFile文件:
在这里插入图片描述
下来开始编译,使用命令:

make

在这里插入图片描述
一次成功了,接下来继续进行安装:

make install

在这里插入图片描述
非常快啊,啪的一下,就完成了:
其在我们编译目录的同级目录下构建了一个名为nginx的文件夹:
在这里插入图片描述
我说停停,这里我们还需要再创建一个文件夹,因为上边再makeFile中指定临时文件目录为/var/temp/nginx/client,需要在 /var 下创建此目录(-p参数就是创建子目录):

mkdir /var/temp/nginx/client -p

到这里nginx的安装就已经完成了。接下来我们进行测试。

3.测试及常用命令

我们进入Nginx目录下的sbin目录:
在这里插入图片描述
里边也没啥,就一个可执行程序。。。跑起来吧

./nginx

在这里插入图片描述
可以使用命令查看进程:

ps aux|grep nginx

发现了nginx主程序master工作程序worker分别在两个线程上:
在这里插入图片描述
我们从页面来看一下,因为其代理监听的是http所在的80端口,这里我们直接访问:
ip + 80 端口,其实不用输入端口号默认的也是80.
在这里插入图片描述
最后的最后,补上几个常用命令:

命令 作用
./nginx 启动Nginx
./nginx -s reload 重启Nginx(刷新Nginx配置文件)
./nginx -s stop 关闭Nginx
./nginx -s quit 关闭Nginx(推荐)

当然,

kill -9 线程id

也是可以关闭的0.0

猜你喜欢

转载自blog.csdn.net/cjl836735455/article/details/112132268
今日推荐