整合resin和apache
为什么要整合resin和apache,已经整合的好处如下:a.动静分离
b.早起的resin、tomcat的http服务不太好
c.早期的resin、tomcat对rewrite和expire功能不太好
一、安装apache
# yum -y install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel gcc gcc-devel gcc-c++ gcc-c++-devel
# cd /opt/tools/
# tar -zxf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
# mkdir /usr/local/apache
# ./configure --prefix=/usr/local/apache \
> --enable-deflate \
> --enable-headers \
> --enable-modules \
> --enable-so \
> --with-mpm=worker \
> --enable-rewrite
# make && make install 二、为apache编译resin mod_caucho模块
# cd /opt/tools/resin-3.1.13
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# cd modules/c/src/
# make
# make install
# ll /usr/local/apache/modules/
total 180
-rw-r--r-- 1 root root 9084 Oct2 23:42 httpd.exp
-rwxr-xr-x 1 root root 170931 Oct2 23:51 mod_caucho.so
# tail -9 /usr/local/apache/conf/httpd.conf
#
# mod_caucho Resin Configuration
#
LoadModule caucho_module /usr/local/apache/modules/mod_caucho.so
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
# 上面的配置是编译后产生的
# vi /usr/local/apache/conf/httpd.conf
# tail -9 /usr/local/apache/conf/httpd.conf
#
# mod_caucho Resin Configuration
#
LoadModule caucho_module /usr/local/apache/modules/mod_caucho.so
ResinConfigServer 192.168.100.182 6911
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
# 修改一下resin的地址和端口 三、启动apache服务并测试
# /usr/local/apache/bin/apachectl start
httpd: apr_sockaddr_info_get() failed for mylinux4.contoso.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
# netstat -lntup|egrep "6911|6921|8080"
tcp 0 0 :::8080 :::* LISTEN 54612/java
tcp 0 0 ::ffff:192.168.100.182:6911 :::* LISTEN 54612/java
tcp 0 0 ::ffff:127.0.0.1:6921 :::* LISTEN 54584/java
# /etc/init.d/resin stop
Stopping resin: .
# netstat -lntup|egrep "6911|6921|8080"
上面的测试结果说明,由apache进行静态内容的展示,而动态内容则交给resin进行解析并返回给apache.
为了更有力的证明这一点,再来做一个测试:
# cd /usr/local/apache/htdocs/
# echo "99+1=" >> test.jsp
# ll
total 8
-rw-r--r-- 1 apache apache 44 Nov 212004 index.html
-rw-r--r-- 1 apache apache 15 Oct3 00:51 test.jsp
# cd /usr/local/resin/webapps/ROOT/
# echo "Hello,world." >> test.jsp
# ll
total 12
-rw-r--r-- 1 root root 1507 Nov92012 index.jsp
-rw-r--r-- 1 root root 13 Oct3 01:13 test.jsp
drwxr-xr-x 5 root root 4096 Oct2 21:35 WEB-INF 在apache的根目录/usr/local/apache/htdocs中创建一个test.jsp,内容是“99+1=”,并在resin的web目录/usr/local/resin/webapps/ROOT也创建一个test.jsp,内容是“Hello,world.”,在浏览器中打开,看浏览器返回的内容:
返回的内容是resin的web目录中test.jsp中的内容,再一次证明动态内容交给resin进行处理。
四、配置动态和静态内容都交给resin进行处理
# tail -9 /usr/local/apache/conf/httpd.conf
# mod_caucho Resin Configuration
#
LoadModule caucho_module /usr/local/apache/modules/mod_caucho.so
ResinConfigServer 192.168.100.182 6911
SetHandler caucho-request #添加这一行内容
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
# /usr/local/apache/bin/apachectl graceful
浏览器访问测试:
可以看到,这是resin的web首页index.jsp的内容。
五、在apache中配置虚拟主机转发resin解析
1、在apache中创建一个虚拟主机
# tail -21 /usr/local/apache/conf/extra/httpd-vhosts.conf
ServerAdmin admin@contoso.com
DocumentRoot "/var/www/html/mylinux4"
ServerName www.mylinux4.com
ServerAlias mylinux4.com
ErrorLog "logs/www.mylinux4.com-error_log"
CustomLog "logs/www.mylinux4.com-access_log" common
options -Indexes +FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
#Resin configuration
ResinConfigServer192.168.100.182 6911
SetHandlercaucho-request #这里设置虚拟主机将所有请求都转给resin进行解析
2、创建站点目录和主页文件
# mkdir /var/www/html/mylinux4
# echo "mylinux4 from vhost in apache." >>/var/www/html/mylinux4/index.html
# /usr/local/apache/bin/apachectl -t
Syntax OK
# /usr/local/apache/bin/apachectl graceful
#
3、修改hosts文件
在hosts文件中添加如下内容:
192.168.100.182www.mylinux4.com
4、在浏览器中打开
同样的,在linux上curl一个不存在的页面,将返回如下内容:
# curl http://www.mylinux4.com/a.html
404 Not Found
404 Not Found
/a.html was not found on this server.
Resin/3.1.13
上面的内容也说明,该请求是由resin进行处理的。
5、下面将转发给resin的设置注释掉,再进行测试。
ServerAdmin admin@contoso.com
DocumentRoot "/var/www/html/mylinux4"
ServerName www.mylinux4.com
ServerAlias mylinux4.com
ErrorLog "logs/www.mylinux4.com-error_log"
CustomLog "logs/www.mylinux4.com-access_log" common
options -Indexes +FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
#Resin configuration
#ResinConfigServer192.168.100.182 6911
#SetHandlercaucho-request
# /usr/local/apache/bin/apachectl graceful
同样的,curl一个不存在的页面,出现的结果如下:
# curl http://www.mylinux4.com/a.html
404 Not Found
Not Found
The requested URL /a.html was not found on this server.
这里并没有转发给resin。
六、resin配置多个虚拟主机
-Xmx256m
-Xss1m
-Xdebug
-Dcom.sun.management.jmxremote
1M
256
65s
128
15s
-Xmx256m
-Xss1m
-Xdebug
-Dcom.sun.management.jmxremote
1M
256
65s
128
15s
七、配置resin多站点目录
把host-default 模块删除,添加下面的内容。在对应的位置添加
www.demo1.org
5
12000
/resin-status-www.demo1.com
utf-8
/*
www.demo2.com
5
12000
/resin-status-www.demo2.com
utf-8
/*
八、错误优雅显示
九、修改resin的默认日志配置
resin的默认日志设置格式为:
一般我们采用下面的方式记录日志(记录每一天的日志):
而resin日志内容的格式为:
我们也对此进行修改,示例如下:
页:
[1]