一、nginx和resin简单介绍
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。
Resin是CAUCHO公司的产品,是一个非常流行的支持servlets 和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER。许多站点都是使用该WEB服务器构建的。resinResin也可以和许多其他的WEB服务器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3标准和JSP 1.2标准。熟悉ASP和PHP的用户可以发现用Resin来进行JSP编程是件很容易的事情。
系统环境:centos 5.6 64位
jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1637583.html
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
wget http://labs.frickle.com/files/ngx_cache_purge-1.6.tar.gz
wget http://nginx.org/download/nginx-1.3.5.tar.gz
wget http://www.caucho.com/download/resin-4.0.30.tar.gz
二、安装jdk、nginx、resin
yum -y install gcc gcc-c++ gd zlib-devel openssl openssl-devel perl mhash
1.安装jdk
tar -zxvf jdk-7u6-linux-x64.tar.gz
mv jdk1.7.0_06/ /usr/local/jdk
vi ~/.bash_profile
添加下面两行
export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
将下面行
PATH=$PATH:$HOME/bin
修改为
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
注:把新安装的jdk的bin目录添加在$PATH的前面,这样当系统中有多个jdk版本时,会优先搜寻排在前面的jdk版本。
source ~/.bash_profile
java -version # 查看java的版本
2.安装pcre
tar -zxvf pcre-8.31.tar.gz
cd pcre-8.31
./configure --prefix=/usr/local/pcre
make
make install
3.安装nginx
tar -zxvf ngx_cache_purge-1.6.tar.gz
mv ngx_cache_purge-1.6 /usr/local/ngx_cache_purge
tar -zxvf nginx-1.3.5.tar.gz
cd nginx-1.3.5
./configure --prefix=/usr/local/nginx --user=nobody --group=nobody --with-http_stub_status_module --with-openssl=/usr/include/openssl --with-pcre=/tmp/pcre-8.31 --add-module=/usr/local/ngx_cache_purge --with-http_gzip_static_module
# 注意:--with-pcre指向的是源码包解压的路径,而不是安装的路径,否则编译会报错
make
make install
chown -R nobody:nobody /usr/local/nginx/html/
4.设置nginx开机启动
vi /etc/rc.d/init.d/nginx
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.1.3.0 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /var/run/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/usr/local/nginx/logs/nginx.pid RETVAL=0 prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x $nginxd ] || exit 0 # Start nginx daemons functions. start() { if [ -e $nginx_pid ];then echo "nginx already running...." exit 1 fi echo -n $"Starting $prog: " daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx return $RETVAL } # Stop nginx daemons functions. stop() { echo -n $"Stopping $prog: " killproc $nginxd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid } reload() { echo -n $"Reloading $prog: " #kill -HUP `cat ${nginx_pid}` killproc $nginxd -HUP RETVAL=$? echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|reload|status|help}" exit 1 esac exit $RETVAL
chmod +x /etc/rc.d/init.d/nginx
chkconfig nginx on
service nginx start
在浏览器地址栏里输入http://ip,如果显示“Welcome to nginx!”则表示nginx安装成功。
5.安装resin
tar -zxvf resin-4.0.30
cd resin-4.0.30
./configure --prefix=/usr/local/resin
make
make install
service resin start
在浏览器地址栏里输入http://ip:8080,出现如下图页面则表示resin安装成功。
三、配置nginx和resin
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vi /usr/local/nginx/conf/nginx.conf
# 找到server部分,将其修改如下
server { listen 80; server_name localhost; root /usr/local/wwwweb; #charset koi8-r; #access_log logs/host.access.log main; location / { access_log on; proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; #root html; #index index.html index.htm; }
cp /usr/local/resin/conf/resin.xml /usr/local/resin/conf/resin.xml.bak
vi /usr/local/resin/conf/resin.xml
mkdir /usr/local/wwwweb
mkdir /usr/local/wwwweb/xuad
四、测试
vi /usr/local/wwwweb/xuad/index.jsp
hello word
service nginx restart
service resin restart
在浏览器地址栏里输入http://ip,如果能正常显示“hello word”页面,则表示nginx和resin整合成功。
尝试关闭resin,再输入http://ip,如出现下图页面则OK。
我们在装nginx之前有装pcre和ngx_cache_purge,如果想用nginx做负载均衡或者做缓存的话,可以参考我的另一篇博文:CentOS 5.8布署nginx+keepalived实现负载均衡。关于反向代理的话只需要稍微修改一下配置文件而已,这里我就不讲了。