nginx从6升级到8后的问题汇总

系统是centos5

因为最近爆的nginx的安全漏洞,所以着手升级了nginx


先升级一台从前端,出现的问题是ssl证书的问题

1.日志报错,并且新程序起不来

2011/08/26 17:55:21 [emerg] 6336#0: SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/xxx.key") failed (SSL: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt error:0906A065:PEM routines:PEM_do_header:bad decrypt error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

然后查阅 nginx官网http://wiki.nginx.org/HttpSslModule

发现他们做sslkey的时候多做了一步


 
cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

之前我直接用默认的 server.key,每次启动nginx都要启动的,然后现在使用这个新key之后,启动不需要密码了。



2.换到主前端之后,看启动没问题,但是日志报错:

2011/08/27 14:52:42 [emerg] 21997#0: eventfd() failed (38: Function not implemented)
2011/08/27 14:52:42 [alert] 21988#0: worker process 21989 exited with fatal code 2 and can not be respawn

并且看进程,只有一个主程序在启动,端口也连不上


到网上搜索错误日志,大体表明:Nginx 使用 Linux-native aio 需要 Linux 内核支持

http://2015.iteye.com/blog/1069444

http://www.vpsee.com/2010/12/nginx-with-file-aio-need-linux-kernel-support/

主前端机的内核的确比较老(从前端的升级过),2.6.18-164.el5,然后升级到最新的2.6.18-238.19.1.el5,重启后正常


看官网论坛解释:http://forum.nginx.org/read.php?2,152995

You have to recompile nginx *without* --with-file-aio configure
option.

Your system lacks eventfd() support and nginx compiled with
--with-file-aio configure option (on another host? compile on the
host in question with --with-file-aio should fail unless your
system headers screwed up) won't work on it.


大意是你需要重新编译nginx 并且 不带--with-file-aio这个参数,问题产生原因是系统不支持 eventfd() ,但是nginx却带了--with-file-aio编译的。所以就出问题了


所以。对于server来说,整体升级也是必要的,因为全升到最新,程序必然是没有问题的,但是只升级一个,有问题人家也不告诉我们。





你可能感兴趣的:(nginx,function,centos,header,ssl,File)