yxixi 发表于 2018-11-19 10:06:07

整合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]
查看完整版本: 整合resin和apache