目录
1、 从官网下载nginx安装包
使用命令wget http://nginx.org/download/nginx-1.18.0.tar.gz
从官网直接下载到temp临时目录,当然也可以先去官网下载好,然后使用xftp
工具或者rz
命令上传到指定目录
备注:
centos版本与nginx版本要适配,否则后面make编译时会报错,我这里使用的centos8和nginx 1.18.0
[root@localhost temp]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-10 22:15:52-- http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
正在连接 nginx.org (nginx.org)|95.211.80.227|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”
2、安装依赖环境
2.1、安装gcc
nginx 是C语言开发的,如果没有 gcc 环境,需要安装 gcc对官网下载的源码包进行编译,命令yum install gcc-c++
[root@localhost temp]# yum install gcc-c++
Waiting for process with pid 1825 to finish.
CentOS-8 - AppStream 1.4 kB/s | 4.3 kB 00:03
CentOS-8 - Base 817 B/s | 3.9 kB 00:04
CentOS-8 - Extras 581 B/s | 1.5 kB 00:02
依赖关系解决。
省略....
2.2、安装PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表 达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,命令yum install -y pcre pcre-devel
[root@localhost temp]# yum install -y pcre pcre-devel
上次元数据过期检查:0:03:29 前,执行于 2020年06月09日 星期二 23时37分44秒。
Package pcre-8.42-4.el8.x86_64 is already installed.
依赖关系解决。
...
2.3、安装zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip, 所以需要在 linux 上安装 zlib 库,命令yum install -y zlib zlib-devel
[root@localhost temp]# yum install -y zlib zlib-devel
上次元数据过期检查:0:05:41 前,执行于 2020年06月09日 星期二 23时37分44秒。
Package zlib-1.2.11-10.el8.x86_64 is already installed.
依赖关系解决。
2.4、安装openssl
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和 证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux 安装 openssl 库,命令yum install -y openssl openssl-devel
[root@localhost temp]# yum install -y openssl openssl-devel
上次元数据过期检查:0:07:27 前,执行于 2020年06月09日 星期二 23时37分44秒。
Package openssl-1:1.1.1-8.el8.x86_64 is already installed.
依赖关系解决。
...
3、编译安装
3.1、解压
命令tar -zxvf nginx-1.8.0.tar.gz
3.2、配置./configure
进入nginx根目录,可见configure文件
下面我们要执行一大串配置参数了,但执行前,我们先/var/目录下创建 temp临时目录,再创建nginx 目录(/var/temp/nginx
),上面的命令需要用到
[root@localhost nginx]# pwd
/var/temp/nginx
cd到nginx的根目录执行如下配置参数,里面指定了nginx最终的安装路径为/usr/local/nginx
./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
3.3、编译
1)执行make
命令
如果提示-bash: make: 未找到命令
,则需要先执行yum -y install gcc automake autoconf libtool make
[root@localhost nginx-1.18.0]# make
make -f objs/Makefile
make[1]: 进入目录“/root/temp/nginx-1.18.0”
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
-o objs/src/core/nginx.o \
...
2)执行make install
命令
[root@localhost nginx-1.18.0]# make install
make -f objs/Makefile install
make[1]: 进入目录“/root/temp/nginx-1.18.0”
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
...
执行完毕后,进入/usr/local/nginx/
中可查看到相关资源,说明nginx已经安装成功
[root@localhost nginx-1.18.0]# cd /usr/local/nginx/
[root@localhost nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 6月 10 22:22 conf
drwxr-xr-x. 2 root root 40 6月 10 22:22 html
drwxr-xr-x. 2 root root 19 6月 10 22:22 sbin
4、验证
4.1、启动nginx并查看效果
1)在sbin目录
下执行./nginx
启动服务
备注:
执行./nginx 启动 nginx,这里可以-c 指定加载的 nginx 配置文件,如下: ./nginx -c /usr/local/nginx/conf/nginx.conf 如果不指定-c,nginx 在启动时默认加载 conf/nginx.conf 文件,此文件的地址也可以在 编译安装 nginx 时指定./configure 的参数
[root@localhost /]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx
[root@localhost sbin]# ps -ef|grep nginx
root 4525 1 0 22:45 ? 00:00:00 nginx: master process ./nginx
nobody 4526 4525 0 22:45 ? 00:00:00 nginx: worker process
root 4528 1787 0 22:45 pts/0 00:00:00 grep --color=auto nginx
2)开防火墙端口(nginx默认为80端口)
[root@localhost sbin]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost sbin]# firewall-cmd --reload
success
3)访问测试
4.2、其它命令
1)停止服务
方式一:./nginx -s stop
,该命令相当于先查出nginx进程id,使用kill命令强制杀掉进程。
方式二:./nginx -s quit
,该命令停止步骤是待nginx进程处理任务完毕,再进行停止。
2)重启服务
方式一:先停止再启动
方式二:../nginx -s reload
,该命令不用先停nginx,是直接让配置信息在nginx中生效。