1397535668 发表于 2018-11-8 08:04:37

升级nginx到1.2.0

  首先下载最新源码文件 nginx-1.2.0.tar.gz
  解压 tar -zxvfnginx-1.2.0.tar.gz 同目录下产生同名文件夹
  cd nginx-1.2.0.tar.gz
  察看原来的配置 /usr/local/nginx/sbin/nginx -V 注意是大写的V
  nginx version: nginx/0.7.6.x
  built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
  TLS SNI support disabled
  configure arguments: --prefix=/usr/local/nginx--with-http_ssl_module --with-http_stub_status_module
  拷贝你的红色字体的安装配置参数
  安装配置:
  cd nginx-1.2.0
  # ./configure --prefix=/usr/local/nginx--with-http_ssl_module --with-http_stub_status_module
  中途提示缺少pcre配置,图省事,直接yum安装
  yum -y install pcre-devel
  yum -y install pcre-devel openssl openssl-devel
  然后make但是不要make install
  编译完,在objs目录下有一个nginx执行文件,备份下原来老的nginx文件:
  mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
  复制新文件
  cp objs/nginx /usr/local/nginx/sbin/nginx
  检测一下是否正常读取配置文件
  /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
  显示没有问题。
  执行命令完成升级: make upgrade 会有如下输出
  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
  kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
  sleep 1
  test -f /usr/local/nginx/logs/nginx.pid.oldbin
  kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
  检查版本是否已经更新:/usr/local/nginx/sbin/nginx -V
  nginx version: nginx/1.2.0
  TLS SNI support disabled
  还有一行是你的编译参数
  至此,升级完成.
  我在升级过程中make报错
  编译时候出现错误提示:
  objs/src/http/ngx_http_request.o: In function `ngx_http_ssl_servername':
  ngx_http_request.c:(.text+0xba7): undefined reference to `SSL_get_servername'
  ngx_http_request.c:(.text+0xc5b): undefined reference to `SSL_set_SSL_CTX'
  原因是升级了openssl
  解决办法:
  ./configure --prefix=/usr/local/nginx--with-http_ssl_module --with-http_stub_status_module --with-openssl=这里执行openssl的源码包的地址,不是安装路径

页: [1]
查看完整版本: 升级nginx到1.2.0