Linux之Nginx源码编译安装,并实现Nginx版本升级,秒级切换和Nginx版本回滚,秒级回退

版权声明:©来自CSDN博客作者"李在奋斗"的原创作品,如需转载,请注明出处 https://blog.csdn.net/qq_31725371/article/details/82780493

Linux之Nginx源码编译安装,并实现Nginx版本升级,秒级切换和Nginx版本回滚,秒级回退

1、先检查Nginx依赖库(主要4个gcc、pcre、zlib、openssl,通过yum安装)
2、GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red Hat的发布版本;apt用于Debian和Ubuntu;yast用于SuSE Linux等等。)
RedHat中安装GCC:

yum install gcc

2、PCRE库(Nginx编译需要PCRE(Perl Compatible Regular Expression),因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。)
RedHat中安装PCRE:

yum install pcre pcre-devel

3、zlib库(zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。如同安装PCRE一样,同样需要安装库和它的源代码:zlib和zlib-devel。)
RedHat中安装zlib:

yum install zlib zlib-devel

4、OpenSSL库(在Nginx中,如果服务器提供安全网页时则会用到OpenSSL库,我们需要安装库文件和它的开发安装包(openssl和openssl-devel)。)
RedHat中安装OpenSSL:

yum install openssl openssl-devel

5、最后我们检查依赖是都否安装完成

[root@localhost nginx-1.12.2]# rpm -q  gcc pcre zlib
gcc-4.8.5-28.el7_5.1.x86_64
pcre-8.32-17.el7.x86_64
zlib-1.2.7-17.el7.x86_64
[root@localhost nginx-1.12.2]# 

6、 先创建nginx不可登录型用户

[root@localhost nginx-1.12.2]# useradd -s /sbin/nologin -M nginx   
//   /sbin/nolong表示不可登录,-M表示在home目录下没有用户nginx的文件夹

7、 解压缩包(注意文件归属)

# tar -zxvf nginx-1.12.2.tar.gz
# cd nginx-1.12.2
配置,指定安装路径、/usr/local/nginx 指定用户nginx 指定组nginx
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx  

完成后 nginx-1.12.2 目录下会多一些文件 例如:Makefile

  • 如果出现报错: make: *** No rule to make target build', needed bydefault’. Stop.
 //解决办法是需要安装openssl以及ncurses组件
# yum install -y openssl*
# yum -y install ncurses-devel
  • 之后再删除Makefile文件,重新make生成
#make && make install
//可查看是否编译成功,如果输出为 0 说明是OK 的
[root@localhost nginx-1.12.2]# echo $?    		
0													
[root@localhost nginx-1.12.2]# 

8、 启动Nginx ,并设置开机自启

# /usr/local/nginx/sbin/nginx
# systemctl enable nginx
  • 可查看服务是否启动
# netstat -antup | grep nginx
  • 查看nginx占用的端口,默认是80端口
# ss -lntp|grep nginx

9、 访问Nginx

  • 访问前注意关闭防火墙和selinux防火墙
# systemctl stop firewalld.service
# setenfoce 0

在这里插入图片描述

10、停止nginx 服务

 #systemctl stop nginx 
 或者 # service stop nginx   
 或者 #  /soft/nginx-1.12.0/sbin/nginx -s stop 
 或者 # pkill nginx

11、Nginx版本升级,秒级切换

 // 前提:已经装好了别的的版本如:nginx-1.14.0
[root@localhost /]# unlink /nginx && ln -s /soft/nginx-1.14.0/ /nginx && /soft/nginx-1.12.2/sbin/nginx -s stop && /soft/nginx-1.14.0/sbin/nginx 

12、Nginx版本回滚,秒级回退

[root@localhost sbin]# unlink /nginx && ln -s /soft/nginx-1.12.2/ /nginx && /soft/nginx-1.14.0/sbin/nginx -s stop && /soft/nginx-1.12.2/sbin/nginx

ps:
启动:/usr/local/nginx/sbin/nginx
停止/重新加载:/usr/local/nginx/sbin/nginx -s stop(quit、reload)
验证配置文件是否合法:/usr/local/nginx/sbin/nginx -t
命令帮助:/usr/local/nginx/sbin/nginx -h

猜你喜欢

转载自blog.csdn.net/qq_31725371/article/details/82780493