+++++++++++++++++++++++++++++++++++++++++++++++++
秀脱之apache2.2.9和resin3.1.9整合实战笔记
QQ: 6541657
Email: xiutuo@gmail.com
------------------------------------------
为什么使用apache+resin组合呢,apache解析html和图片速度快,
而resin解析jsp速度快。这就是这个组合的关键所在。
-----------------------------------------
环境:
1.centos5
2.jdk1.6u3
3.resin-3.19 安装目录/usr/local/resin
4.apapche2.2.9 安装目录/usr/local/apache2
5.mysql5 安装目录/usr/local/mysql
6.jdbc:mysql-connector-java-5.0.8
+++++++++++++++++++++++++++++++++++++++++++++++++
〇.安装mysql
# cd /home/xiutuo/software/
# tar -zvxf mysql-5.0.82-linux-i686-icc-glibc23.tar.gz
# mkdir -p /usr/local/mysql (省略也可)
# cp -r mysql-5.0.82-linux-i686-icc-glibc23.tar.gz /usr/local/mysql
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
添加mysql用户及用户组
# groupadd mysql
# useradd -g mysql -s /sbin/nologin mysql
修改mysql目录权限
# cd /usr/local/
# chown -R mysql:mysql mysql
# cd /usr/local/mysql
一定要在该路径下,否则不能生成数据库文件并出错!
用户属主和属组的改变非常重要,否则出错,请严格按照此步骤
#
生成mysql系统数据库
# scripts/mysql_install_db --user=mysql
# chown -R mysql:mysql data
启动mysql服务
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
如出现 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常启动mysql服务了, 按Ctrl + C 跳出
修改 mysql 的 root 密码
# /usr/local/mysql/bin/mysqladmin -u root -p password "123456"
一.安装jdk
1.安装jdk的rpm包
# ./jdk-6u3-linux-i586-rpm.bin
多敲几个空格,然后看到[yes]的时候输入yes,回车
然后在当前目录下就生成了jdk-6u3-linux-i586-rpm
2.设置java和resin相关环境变量和classpath,
(此步骤可以在安装和配置好apache和resin后再做,再启动apache和resin)
# vi /etc/profile
//java
//如果你安装的j2sdk的路径不一样,请自行修改
JAVA_HOME=/usr/java/jdk1.6.0_03
export JAVA_HOME
# 设置java和resin的classpath,重要
CLASSPATH=/usr/java/jdk1.6.0_03/lib:/usr/java/jdk1.6.0_03/jre/lib:/usr/local/resin/lib
export CLASSPATH
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
JRE=/usr/java/jdk1.6.0_03/jre
export JRE
LD_LIBRARY_PATH=/usr/local/apr/lib
export LD_LIBRARY_PATH
# 设置resinhome,重要
RESINHOME=/usr/local/resin
export RESINHOME
3:立即生效
//如果你修改的是/etc/profile
# source /etc/profile
//如果你修改的是~/.cshrc
# source ~/.cshrc
//如果你修改的是~/.bash_profile
# source ~/.bash_profile
二.安装apache
# ./configure --prefix=/usr/local/apache2 \
--enable-modules=so \
--enable-mods-shared=all
# make
# make install
三.整合apache时resin的安装
1,编译安装
# ./configure --prefix=/usr/local/resin \
--with-apache=/usr/local/apache2 \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-java-home=/usr/java/jdk1.6.0_03
# make
# make install
-------------------------------------
resin以standalone方式运行时的安装
# mkdir -p /usr/local/resin/
# mkdir -p /usr/local/resin/licenses
专业版时候需要建立该目录,否则报错
Resin Professional has not found any valid licenses.
# ./configure --prefix=/usr/local/resin
# make
# make install
# cd /usr/local/resin/lib
# java -jar resin.jar
# 或者运行/usr/local/resin/bin/httpd.sh
---------------------------------------
编译安装apache和resin后,他们就完成了整合,不需要修改任何配置。
查看整合后的文件http.conf中多了以下几行:
LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.so
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
其中 6800是resin和apache内部通信端口。
先启动resin
# /usr/resin/bin/http.sh start
可以通过http://ip:8080/访问
再启动apache
# /usr/local/apache2/bin/apachectl start
可以通过http://ip/访问
2.配置apache和resin的相同的根目录。
apache默认的根目录/usr/local/apache2/htdocs/
把resin的webapp根目录修改成/usr/local/apache2/htdocs/
即把<web-app id="/" root-directory="webapps/ROOT"/>
修改成<web-app id="/" root-directory="/usr/local/apache2/htdocs"/>
当然也可以不改成相同。
3.屏蔽resin的8080.
因为整合的apache和resin用的是80端口访问,而apache和resin之间的通信是通过6800端口,
所以完全可以把resin默认开启的端口8080关闭。
修改resin.conf
把 <http address="*" port="8080"/> 改成
<!-- <http address="*" port="8080"/> -->
4.配置resin-admin
配置resin-admin用户,通过http://ip:8080/resin-admin页面中表单生成用户和密码配置内容
Username: 输入resin-admin管理用户如xiutuo
Password: 输入resin-admin管理用户密码如123456
Re-enter password: 再次输入密码如123456
Realm: 默认吧,也可以随便填写了,如果主机有对应的域名的话
点击calculate digest按钮,生成如下内容,
<management path="admin">
<user name="xiutuo" password="Qfcyvg92dWVCWUT4eRDoHw=="/>
</management>
将该内容替换resin.conf中相应的行。
resin-3.1.9 通过Quercus/PHP支持php,直接用<web-app>标签激活即可
********************************
Configuring /resin-admin
Since /resin-admin is just a web-app implemented with Quercus/PHP,
enabling it is just adding an appropriate <web-app> tag.
********************************
For security, you will also need to add a <user> to the <management> section of the resin.conf.
The password will be a MD5 hash. By default, the /resin-admin web-app provides a form for
generating the hash codes. You will need to copy the generated password into the resin.conf.
This guarantees that you have access
to the resin.conf itself to add any users. In other words, the configuration is very cautious
about security issues to enable the administration.
*******************************
5. 安装mysql数据库的jdbc驱动。这里mysql的安装步骤省略
这里用的mysql5,使用使用mysql-connector-java-5.0.8.tar.gz这个包
# cd /home/xiutuo/software
# tar -zxvf mysql-connector-java-5.0.8.tar.gz
# cd mysql-connector-java-5.0.8
# cp mysql-connector-java-5.0.8-bin.jar /usr/java/jdk1.6.0_01/lib/
# cp mysql-connector-java-5.0.8-bin.jar /usr/local/resin/lib
mysql数据连接池配置
其中<jndi-name>jdbc/mysql</jndi-name> 的jdbc/mysql中mysql是指jndi-name
其中<url>jdbc:mysql://localhost:3306/dbname</url>中的dbname是指mysql数据中的数据库的名
Example: mysql configuration
<database>
<jndi-name>jdbc/mysql</jndi-name>
<driver>
<type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type>
<url>jdbc:mysql://localhost:3306/dbname</url>
<user>username</user>
<password>password</password>
<init-param useUnicode="true"/>
</driver>
...
</database>
-----------------------------------------------
oracle双机的jdbc连接池配置:
把class12.jar拷贝到/usr/local/resin/lib和/usr/java/jdk1.6.0_01/lib/目录下
<driver type="oracle.jdbc.driver.OracleDriver">
<url>jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = m-rac-vip3.localdomain)(PORT = 1521)) (ADDRESS =
(PROTOCOL = TCP)(HOST = m-rac-vip4.localdomain)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME =RACDB.GLOBAL) ) )</url>
-----------------------------------------------
6.查看resin运行状态:
resin有watchdog监管,watchdog会在resin当掉的情况下自动重启resin,
当出现can't start new task because of wathdog....
如果想手动重新启动resin,请先把watchdog先停止,再启动即可。
操作:进入resin程序目录,如
# cd /usr/local/resin/
# java -jar lib/resin.jar stop
# java -jar lib/resin.jar start
查看watchdog状态
# java -jar lib/resin.jar status
有备份示例时启动方式:
# java -jar lib/resin.jar -conf conf/test.conf -server a start
查看resin状态
http://ip/caucho-status
增加resin的自带监控页面
在 resin.conf中<web-app-default>加入以下语句,省略号中间那段
<web-app-default>
……
<servlet-mapping servlet-class='com.caucho.servlets.ResinStatusServlet'>
<url-pattern>/resin-status</url-pattern>
<init enable="read"/>
</servlet-mapping>
……
</web-app-default>
其中/resin-status可以取你要的名称,重启resin后
可以通过http://ip/resin-status查看该页面内容。
安装时Resin会自动将模块加载到Apache里,并且对httpd.conf进行修改!
整合完毕,先启动resin,再启动apache,非常重要,否则jsp页面无法调用。
7.性能优化,请参考官方文档
主要是在http.sh设置jvm参数和vresin.conf相关性能参数
8.负载均衡,请参考官方文档