当前位置: 游戏平台 > 互联网科技 > 正文

互联网Nginx 1.8.0不间断平滑升级到1.10.1

时间:2019-11-08 04:53来源:互联网科技
如何实现nginx平滑重启与平滑升级?   平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid`  平滑升级nginx:  cd /yujialin  wget  tar zxvf nginx-1.0.6.tar.gz  cd nginx-1.0.6  /usr/local/www/nginx/sbin/ngin

如何实现nginx平滑重启与平滑升级?
 
平滑重启 kill -HUP `cat /usr/local/www/nginx/logs/nginx.pid`
 平滑升级nginx:
 cd /yujialin
 wget
 tar zxvf nginx-1.0.6.tar.gz
 cd nginx-1.0.6
 /usr/local/www/nginx/sbin/nginx -V
 nginx: nginx version: nginx/1.0.4
 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
 nginx: configure arguments: --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module
 得到编译参数
 
./configure --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module
 用上面这段编译
 然后make,千万别make install
 make完了 在objs目录下就多了个nginx,这个就是新版本的程序了
 mv /usr/local/www/nginx/sbin/nginx /usr/local/www/nginx/sbin/nginx-20110906
 cp objs/nginx /usr/local/www/nginx/sbin/nginx
 /usr/local/www/nginx/sbin/nginx -t
 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
 nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu
 make upgrade 执行升级
 执行完后 /usr/local/nginx/sbin/nginx -V
 nginx: nginx version: nginx/1.0.6
 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
 nginx: configure arguments: --prefix=/usr/local/www/nginx --with-pcre=/yujialin/pcre-8.12 --with-http_stub_status_module --with-http_gzip_static_module

Nginx1.8.0平滑升级到1.10.1,不间断服务。

推荐阅读

  1. 先查看当前的版本及原来安装编译时候的参数路径文件信息。
    #/usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.8.0
    built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
    built with OpenSSL 1.0.1c 10 May 2012
    TLS SNI support enabled
    configure
     arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx 
    --with-http_ssl_module --with-openssl=-1.0.1c 
    --with-pcre=/soft/pcre-8.21 --with-zlib=/soft/zlib-1.2.8 
    --with-http_stub_status_module --with-threads -l_module 
    --with-http_flv_module --with-http_stub_status_module 
    --with-http_gzip_static_module --http-client-bodyar/tmp/nginx/client/ 
    --http-proxy-temp-path=/var/tmp/nginx/proxy/ 
    --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ 
    temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi

 

※这是以前编译的参数。编辑新版本需要用到。

Nginx实现反向代理和负载均衡的配置及优化 http://www.linuxidc.com/Linux/2013-11/92909.htm

2.下载新版本:  解压、编译
# tar -zxvf nginx-1.10.1.tar.gz
# cd nginx-1.10.1

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx 
--with-http_ssl_module --with-openssl=/soft/openssl-1.0.1c 
--with-pcre=/soft/pcre-8.21 --with-zlib=/soft/zlib-1.2.8 
--with-http_stub_status_module --with-threads --with-http_ssl_module 
--with-http_flv_module --with-http_stub_status_module 
--with-http_gzip_static_module 
--http-client-body-temp-path=/var/tmp/nginx/client/ 
--http-proxy-temp-path=/var/tmp/nginx/proxy/ 
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ 
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi 
--http-scgi-temp-path=/var/tmp/nginx/scgi
# make

 

编译安装后可以执行 echo $? 查看是否成功,返回值为0说明正确。

Nginx做负载均衡报:nginx: [emerg] could not build the types_hash http://www.linuxidc.com/Linux/2013-10/92063.htm

  1. 执行完后,不要 make install,重名 /sbin/nginx为nginx.old
    # mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

  2. 复制编译后 objs 目录下的 nginx 文件到 nginx 的安装目录 sbin 下
    # cp objs/nginx /usr/local/nginx/sbin/

  3. 测试一下新复制过来文件生效情况:
    # /usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  4. 让 nginx 把 nginx.pid 文件修改成 nginx.pid.oldbin,随即启动 nginx,实现不间断服务。
    # kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

 

此时查看 nginx 进程,可以看到新建立的进程和以前的进程同时存在.

Nginx 负载均衡模块 ngx_http_upstream_module 详述 http://www.linuxidc.com/Linux/2013-10/91907.htm

查看进程pid文件:
[root@Nginx ~]#cd /usr/local/nginx/logs
[root@Nginx logs]# ls
access.log  error.log  nginx.pid  nginx.pid.oldbin

 

结束 nginx.pid.oldbin:
# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器 http://www.linuxidc.com/Linux/2013-10/91824.htm

结束后查看 nginx 进程,此时可以看到 nginx 进程是新建立的进程,之前的进程已结束。

 

【QUIT 表示处理完当前请求后没关闭进程;
  HUP 表示重新加载配置,也就是关闭原有进程,并开启新的工作进程,不会中断用户访问,可以平滑重启 nginx;
  USR1 用于 nginx 日志切换,即重新打开一个日志文件;
  USR2 用于平滑升级可执行程序;
  WINCH 从容关闭工作进程】

Ubuntu安装Nginx php5-fpm MySQL(LNMP环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

  1. 升级完成,最后在看一下升级后的版本。
    [root@Nginx~]# nginx -tv
    nginx version: nginx/1.10.1
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
     
    [root@Nginx ~]# nginx -V
    nginx version: nginx/1.10.1
    built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
    built with OpenSSL 1.0.1c 10 May 2012
    TLS SNI support enabled
    configure
     arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx 
    --with-http_ssl_module --with-openssl=/soft/openssl-1.0.1c 
    --with-pcre=/soft/pcre-8.21 --with-zlib=/soft/zlib-1.2.8 
    --with-http_stub_status_module --with-threads --with-http_ssl_module 
    --with-http_flv_module --with-http_stub_status_module 
    --with-http_gzip_static_module 
    --http-client-body-temp-path=/var/tmp/nginx/client/ 
    --http-proxy-temp-path=/var/tmp/nginx/proxy/ 
    --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ 
    --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi 
    --http-scgi-temp-path=/var/tmp/nginx/scgi
    [root@Nginx ~]#

编辑:互联网科技 本文来源:互联网Nginx 1.8.0不间断平滑升级到1.10.1

关键词: