PS:因一客户的运营环境需求,需要nginx和resin整合,nginx负责处理静态页面部份,resin负责处理动态JSP部份。Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发,而且Resin速度比Tomcat快,稳定性也比Tomcat好。关于各软件版本,我使用了官方比较新的稳定版本。以下是该环境安装整合部署的详细总结:
系统环境:SUSE Linux Enterprise Server 11 x64 SP2(其他Linux发行版基本通用)
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.0.1.tar.gz
tar zxvf libunwind-1.0.1.tar.gz
cd libunwind-1.0.1/
./configure
make
make install
注:google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守BSD协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析。google-perftools 对一个程序的CPU性能剖析包括以下几个步骤。
1. 编译目标程序,加入对 google-perftools 库的依赖。
2. 运行目标程序,并用某种方式启动 / 终止剖析函数并产生剖析结果。
3. 运行剖结果转换工具,将不可读的结果数据转化成某种格式的文档(例如 pdf,txt,gv 等)。
cd /root
wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz
tar zxvf gperftools-2.0.tar.gz
cd gperftools-2.0/
./configure
make
make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig 二、安装Nginx
1、添加nginx用户和编译安装nginx相关源码包:
groupadd www
useradd -g www www -s /sbin/nologin
mkdir -p /data/www
chmod +w /data/www
chown -R www:www /data/www
mkdir -p /data/logs
chmod +w /data/logs
chown -R www:www /data/logs
cd /root
wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.31/pcre-8.31.tar.gz
tar zxvf pcre-8.31.tar.gz
cd pcre-8.31/
./configure
make
make install
cd /root
wget http://zlib.net/zlib-1.2.7.tar.gz
tar -vxf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make install
注:zlib这个包一般系统自带有,但SUSE居然没有这个包,所以要编译一个。CentOS可以直接用yum安装。
cd /root
wget http://www.nginx.org/download/nginx-1.2.3.tar.gz
tar zxvf nginx-1.2.3.tar.gz
cd nginx-1.2.3/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-google_perftools_module
make
make install
2、编辑修改nginx主配置文件:
vim /usr/local/nginx/conf/nginx.conf
配置如下:
#! /bin/bash
# Description: Startup script for webserver on CentOS. cp it in /etc/init.d and
# chkconfig --add nginx && chkconfig nginx on
# then you can use server command control nginx
#
# chkconfig: 2345 08 99
# description: Starts, stops nginx
set -e
PATH=$PATH:/usr/local/nginx/sbin/
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
PIDFILE=/usr/local/nginx/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
d_start() {
$DAEMON -c $CONFIGFILE || echo -n " already running"
}
d_stop() {
kill -QUIT `cat $PIDFILE` || echo -n " not running"
}
d_reload() {
wget http://www.caucho.com/download/resin-4.0.30.tar.gz
tar zxvf resin-4.0.30.tar.gz
cd resin-4.0.30/
./configure --prefix=/usr/local/resin
make
make install
启动resin:
/usr/local/resin/bin/resin.sh start
设置resin开机自启动:
cp -r init.d/resin /etc/init.d/resin
chmod +x /etc/init.d/resin
chkconfig --add resin
chkconfig --level 2345 resin on 四、Nginx、Resin整合和测试
1、将resin的默认目录与nginx的目录相同:
vim /usr/local/resin/conf/resin.xml
把下面:
< !--
- webapps can be overridden/extended in the resin.xml
-->
修改成:
< !--
- webapps can be overridden/extended in the resin.xml
-->
cd /root
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar -zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable/
./configure
make
make install
ln -s /usr/local/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5
注:Libevent是一个轻量级的开源高性能网络库,memcache使用libevent作为网络底层的函式库。SUSE自带有libevent包,可能版本问题,不能正常使用,所以要重现编译安装2.0版本才行。
cd /root
wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
tar zxvf cmake-2.8.8.tar.gz
cd cmake-2.8.8/
./bootstrap
gmake
gmake install
2、新建mysql用户和组、mysql数据目录:
groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
mkdir -p /data/mysql/{data,binlog,relaylog,mysql}
chown -R mysql.mysql /data/mysql
3、定制安装MySQL 5.5:
cd ../
wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.27.tar.gz
tar zxvf mysql-5.5.27.tar.gz
cd mysql-5.5.27/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_TCP_PORT=3306
make
make install
chmod +w /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18