不懂博客—所知甚少因而建立此博客记录不懂知识;学习、关注、体验互联网。

Nginx平滑升级为Tengine最新版(附header头部信息修改方法)

来源:原创 作者:fcbu.com 时间:2012-03-08 【 打印

#Nginx平滑升级为Tengine最新版本

#不懂博客原创,转载请注明出处和链接

#http://linux.fcbu.com/nginx-upgrade-tengine.htm

#Tengine 1.2.3的特性:

#继承Nginx-1.0.12的所有特性;

#输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;

#组合多个CSS、JavaScript文件的访问请求变成一个请求;

#支持管道和syslog形式的日志和抽样;

#自动根据CPU数目设置亲缘性;

#监控系统的负载和资源占用从而对系统进行保护;

#显示对运维人员更友好的出错信息,便于定位出错机器;

#更强大的访问速度限制模块;

#backtrace模块,程序崩溃的时候可以显示出错的调用栈。

mkdir -p /tmp/upnginx/

cd /tmp/upnginx/

#### 安装pcre 支持删除指定url模块和代理缓存的模块 支持Tengine伪静态 ########

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz

tar zxvf pcre-8.30.tar.gz

cd pcre-8.30

./configure --prefix=/usr/local/pcre

make

make install

cd ../

#Tengine最新版去官方看:http://tengine.taobao.org/index_cn.html

wget -c http://tengine.taobao.org/download/tengine-1.2.3.tar.gz

tar zxvf tengine-1.2.3.tar.gz

cd tengine-1.2.3/

########### 改header信息(可略过) ######################
#如果要更改header信息的话,
vim src/core/nginx.h
#define TENGINE_VERSION    "1.2.3"   修改为你想要的版本号
#define TENGINE_VER        "Tengine/" TENGINE_VERSION  修改为你所要的名称

vim src/http/ngx_http_special_response.c
大约80行"<hr/>Powered by Tengine" CRLF
改为"<hr/>Powered by FCBU.com" CRLF

vim src/http/ngx_http_header_filter_module.c
大约49行:
static char ngx_http_server_string[] = "Server: Tengine" CRLF;
static char ngx_http_server_full_string[] = "Server: " TENGINE_VER CRLF;
改为:
static char ngx_http_server_string[] = "Server: FCBU.com" CRLF;
static char ngx_http_server_full_string[] = "Server: " TENGINE_VER CRLF;

## 默认的Nginx编译选项里是用 debug模式的(-g参数),在 auto/cc/gcc 文件最底下,去掉那个 -g 参数
## 就是将  CFLAGS="$CFLAGS -g"  修改为   CFLAGS="$CFLAGS"   或者直接删除这一行
vim auto/cc/gcc

#如果要修改探针中显示的web服务软件信息,就修改nginx安装目录中conf/fcgi.conf,将
#fastcgi_param  SERVER_SOFTWARE    nginx;
#中的信息修改掉。这个是配置文件,是在编译之后修改的。
########### 改header信息 end ######################

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_sub_module --with-openssl=/usr/ --with-pcre=/tmp/upnginx/pcre-8.30

#注意:--with-pcre=/tmp/upnginx/pcre-8.30 指向的是源码包解压的路径,而不是安装的路径,否则会报错。

make

#但不要Make install

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 -v

#如果提示Tengine version: FCBU.com/1.2.3 (nginx/1.0.12)那表示基本成功了。

#用如下命令查看下是否有错误

/usr/local/nginx/sbin/nginx -t

#再执行:

make upgrade

/usr/local/nginx/sbin/nginx -V

#将会出现nginx的版本及编译的参数。升级完成!

#网上一些人所说的不支持stub_status模块,要在配置文件/usr/local/nginx/conf/nginx.conf里删除或者注释stub_status on;的原因是因为编译的时候没有加 --with-http_stub_status_module参数,我的Nginx平滑升级为Tengine最新版里面的方法已经加了参数,所以不用理会。

#最后重启nginx即可:

/etc/init.d/nginx restart

#### 错误解决方法 2012年9月8日更新 ######
make的时候如果遇到如下错误:

------------
cd /usr/ \
        && make clean \
        && ./config --prefix=/usr//.openssl no-shared  no-threads \
        && make \
        && make install LIBDIR=lib
make[2]: Entering directory `/usr'
make[2]: *** 没有规则可以创建目标“clean”。 停止。
make[2]: Leaving directory `/usr'
make[1]: *** [/usr//.openssl/include/openssl/ssl.h] 错误 2
make[1]: Leaving directory `/tmp/upnginx/tengine-1.4.0'
make: *** [build] 错误 2
-----或者-----
cd /usr/ \
        && make clean \
        && ./config --prefix=/usr//.openssl no-shared  no-threads \
        && make \
        && make install LIBDIR=lib
make[2]: Entering directory `/usr'
make[2]: *** No rule to make target `clean'.  Stop.
make[2]: Leaving directory `/usr'
make[1]: *** [/usr//.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/tmp/upnginx/tengine-1.4.0'
make: *** [build] Error 2
-------------
解决方法:(注意:openssl不用安装,只要解压出来就行。)
cd /tmp/upnginx/
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar zxvf openssl-1.0.1c.tar.gz
编译的时候将对应参数改为:--with-openssl=/tmp/upnginx/openssl-1.0.1c/

分类目录: | 标签:nginx 服务器 升级
如何手动释放Linux内存的方法
无/swap交换分区分区的解决办法(用文件替代swap分区)