搭建web服务器(jdk+nginx+resin整合)
一、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
<host id="" root-directory="/usr/local/wwwweb"> <!-- - webapps can be overridden/extended in the resin.xml --> <web-app id="/" root-directory="xuad"/>
mkdir /usr/local/wwwweb
mkdir /usr/local/wwwweb/xuad
四、测试
vi /usr/local/wwwweb/xuad/index.jsp
<h1>hello word </h1>
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实现负载均衡。关于反向代理的话只需要稍微修改一下配置文件而已,这里我就不讲了。
转载于:https://blog.51cto.com/andyxu/975413
更多推荐


所有评论(0)