本帖最后由 lqph3387 于 2010-12-14 15:03 编辑
编译server.xml文件,在
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
下追加如下信息:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access." suffix=".log" pattern="combined" resolveHosts="false"/>
1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。­
2. Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。­
3. Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的Java Web应用服务器,譬如163、ku6等。­商用应用服务器里主要有:Weblogic、Websphere,其中Weblogic我也使用过很长一段时间,当时也只用其当Servlet容器,然而就在同等条件下,在性能及易用性等方面,要比Tomcat优秀很多。
本帖最后由 lqph3387 于 2010-12-14 14:23 编辑
编译tomcat安装目录下的bin/catalina.sh文件,增加一句:JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
具体做法,打开catalina.sh,搜索关键字$have_tty -eq 1,在if [ $have_tty -eq 1 ]; then行下增加:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
修改后如下:
if [ $have_tty -eq 1 ]; then
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
echo "Using CATALINA_BASE: $CATALINA_BASE"
echo "Using CATALINA_HOME: $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
if [ "$1" = "debug" ] ; then
echo "Using JAVA_HOME: $JAVA_HOME"
else
echo "Using JRE_HOME: $JRE_HOME"
fi
echo "Using CLASSPATH: $CLASSPATH"
fi
E.配置Apache虚拟主机
配置文件为:/usr/local/apache2/conf/extra/httpd-vhosts.conf
将配置文件中下面一段修改为如下:
<VirtualHost *:80>
# ServerAdmin
[email protected]
DocumentRoot "/www/wwwroot/supesite"
ServerName www.www.com.cn
ErrorLog "|/usr/local/cronolog/sbin/cronolog /www/logs/error.log-%Y%m%d"
CustomLog "|/usr/local/cronolog/sbin/cronolog /www/logs/access.log-%Y%m%d" combined
</VirtualHost>
<VirtualHost *:80>
# ServerAdmin
[email protected]
DocumentRoot "/www/wwwroot/ucenter"
ServerName uc.www.com.cn
ErrorLog "|/usr/local/cronolog/sbin/cronolog /www/logs/error.log-%Y%m%d"
CustomLog "|/usr/local/cronolog/sbin/cronolog /www/logs/access.log-%Y%m%d" combined
</VirtualHost>
<VirtualHost *:80>
# ServerAdmin
[email protected]
DocumentRoot "/att/attachments"
ServerName att.www.com.cn
</VirtualHost>
说明:
ServerAdmin 参数后为管理员email
DocumentRoot 指的是论坛文件存放的目录
ServerName 是论坛的域名
ErrorLog 是论坛错误日志 通过管道使用cronolog工具将日志切割为每天一个文件
CustomLog 是论坛访问日志 通过管道使用cronolog工具将日志切割为每天一个文件
<IfModule mod_rewrite.c> 和</IfModule> 包含的字段是rewrite部分,实现URL静态化
本帖最后由 lqph3387 于 2010-12-14 14:42 编辑
1,编译tomcat安装目录下的conf/tomcat-users.xml文件,在<tomcat-users>和</tomcat-users>之间注释或删除掉所有的默认账户和权限,新加一个权限如下:
<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="adminws" roles="admin,manager"/>
</tomcat-users>
2,访问http://yourhost:port/manager/status 时给出admin的用户名与口令,就可以查看到应用服务器的相关性能指标数据
本帖最后由 lqph3387 于 2011-1-6 08:38 编辑
在resin的官方http://www.caucho.com/下载resin相应的版本,本文下载的版本是resin-4.0.7.tar.gz ,然后上传至/usr/local/src目录
# tar -zxvf resin-4.0.7.tar.gz
# cd resin-4.0.7
# ./configure --prefix=/usr/local/www/resin --with-java-home=/usr/local/java
# make # make install
# groupadd resin
# useradd -g resin -s /sbin/nologin -M resin
# chown -R resin.resin /usr/local/www/resin
# vi /usr/local/www/resin/conf/resin.xml
修改如下两行内容:
<user-name>resin</user-name>
<group-name>resin</group-name>
/usr/local/www/resin/bin/resin.sh start
用http://hostip:8080即可访问到resin的默认页面
二、添加resin到系统服务
将make install生成的$RESIN_HOME/init.d/resin复制到/etc/init.d/resin
# cp init.d/resin /etc/init.d/resin
# chmod a+x /etc/init.d/resin
# vi /etc/init.d/resin添加如下两行
# chkconfig: 345 85 15
# description: Resin is a Java Web server.把type log_daemon_msg 1> /dev/null
修改为type echo 1> /dev/null
修改
case "$1" in
start)
....
stop)
.....
中的log_daemon_msg和log_end_msg为echo然后就可以用service resin start|stop来启动和停止resin了
三、resin管理员控制台
注:修改resin配置文件之前要先停止resin
使用http://hostip:8080 打开resin的默认页面
点击Administration is available here处的here
创建一个管理员
# cd /usr/local/www/resin/conf/
# service resin stop
# mv admin-users.xml.generated admin-users.xml
# service resin start然后就可以使用刚才创建的管理员登陆resin管理员控制台了
四、resin优化
1、优化JVM参数
修改resin.conf文件,在<server-default>节点下增加配置JVM参数的子节点<jvm-arg>。 -Xmx和-Xms的值需要根据服务器内存的大小调整,对于多数应用来说,-Xmx配置成1024M,完全能满足使用要求。通常将-Xms与-Xmx选项的值设置为相同,-Xmn的值为-Xmx的1/4。
<server-default>
<jvm-arg>-Xms1024m</jvm-arg>
<jvm-arg>-Xmx1024m</jvm-arg>
<jvm-arg>-Xmn256m</jvm-arg>
<jvm-arg>-XX:PermSize=128m</jvm-arg>
<jvm-arg>-XX:MaxPermSize=256m</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
</server-default>
2、调整图片Cache图片文件的时间
<web-app-default>
<cache-mapping url-pattern="*.gif" expires="6000s"/>
<cache-mapping url-pattern="*.jpg" expires="6000s"/>
<cache-mapping url-pattern="*.png" expires="6000s"/>
</web-app-default>
3、调整线程池的最大线程数
<server-default>
<thread-max>1024</thread-max>
</server-default>4、日志输出
如果不配置stdout-log,那么resin会把System.out输出的信息,自动输出到${resinHome}/log/jvm-default.log文件中,且这个文件不会按天存储,随着时间推移,这个文件会越来越大,最后影响系统效率。
<host>
<stdout-log path="${resinHome}/log/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>
<stderr-log path="${resinHome}/log/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>
</host>5、resin-server TIME_WAIT 过多的处理
thread-max指定了最大连接数,socket-timeout是socket超时时间
keepalive-max指定了长连接的数量,这是可以重复使用的连接,netstat -an时系统可以看到响应数量的ESTABLISHED状态
设定keepalive-max和把keepalive-timeout调小可以减少TIME_WAIT的数量。
在<server-default>节点下增加配置
<thread-max>10000</thread-max>
<socket-timeout>30s</socket-timeout>
<keepalive-max>512</keepalive-max>
<keepalive-timeout>60s</keepalive-timeout>6、调整检查程序更新时间间隔的配置
Resin 会在一个指定的周期内,检查一下web-app目录下的classes、jsp、jar以及配置文件是否更新,并且根据检查的情况,确定是否重新装载这些文件。对于生产系统来说,不会经常更新文件,时间间隔应该加长,提高系统的效率。文本框中配置的时间间隔为20分钟。
<dependency-check-interval>1200s</dependency-check-interval>
本帖最后由 lqph3387 于 2010-12-14 15:08 编辑
<Host name="www.cmdi.com" appBase="/data/www/wwwroot/www.cmdi.com"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/>
</Host>
以上的内容就是在linux系统中创建/data/www/wwwroot/www.cmdi.com文件夹作为www.cmdi.com这个域名的主目录,如果想配置这个域名的访问日志,如下:
<Host name="www.cmdi.com" appBase="/data/www/wwwroot/www.cmdi.com"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/>
<Logger className="org.apache.catalina.logger.FileLogger" directory="/data/www/logs" prefix="www_cmdi_com_access." suffix=".log" pattern="combined" timestamp="true"/>
</Host>
在配置apache多个虚拟主机的时候,访问总是指向第一个虚拟主机,
加上 NameVirtualHost * 后解决问题.
NameVirtualHost *
<VirtualHost *>
DocumentRoot "F:/web/"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "F:/web/aa/"
ServerName *.test.com
</VirtualHost>
本帖最后由 lqph3387 于 2010-12-14 15:04 编辑
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="./" debug="1" reloadable="true">
<Resource name="jndi-test" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbcracle:thin192.168.1.210:1521:database" username="username"
password="password" maxActive="100" maxIdle="10" maxWait="600" /> </Context>
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="logs" prefix="localhost_access." suffix=".log"
pattern="combined" resolveHosts="false"/>
</Host>
本帖最后由 lqph3387 于 2011-1-5 13:59 编辑
一,在jboss的官方http://www.jboss.com/下载jboss相应的版本,本文下载的版本是jboss-5.0.0.GA-jdk6.zip,然后上传至/usr/local/src目录
[root@host1 ~]# cd /usr/local/src
[root@host1 src]# unzip jboss-5.0.0.GA-jdk6.zip
[root@host1 src]# mv jboss-5.0.0.GA /usr/local/jboss
二,设置jboss的环境变量
[root@host1 src]#vim /etc/profile
在PATH的末尾追加jboss的bin目录,如:PATH=$PATH:/opt/jdk1.6.0_15/bin:/opt/jdk1.6.0_15/jre/bin::/usr/local/jboss/bin
三,启动并测试
[root@host1 src]# run.sh -b 192.168.12.1
[root@host1 jbossweb.sar]# ps aux |grep jboss
root 24938 0.0 0.0 63856 1144 ? S 08:28 0:00 /bin/sh /usr/local/jboss/bin/run.sh -b 192.168.12.1
root 24974 1.1 1.7 1014736 291672 ? Sl 08:28 1:29 /opt/jdk1.6.0_15//bin/java -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/usr/local/jboss/lib/endorsed -classpath /usr/local/jboss/bin/run.jar:/opt/jdk1.6.0_15//lib/tools.jar org.jboss.Main -b 192.168.12.1
root 25738 0.0 0.0 61176 748 pts/1 S+ 10:37 0:00 grep jboss
通过浏览器访问http://192.168.12.1:8080/出现jboss的主页面就安装成功了
四,备注
1,默认启动jbosss,启动的是default主机,与它平行的还有all minimal standard web
2,关闭jboss的命令为 shutdown.sh -s 192.168.12.1
3,后台启动jboss的命令为 nohup run.sh -b 192.168.12.1 >/dev/null &
4,默认的default配置文件为 /usr/local/jboss/server/default/deploy/jbossweb.sar/server.xml
5,默认的default的网站根目录为 /usr/local/jboss/server/default/deploy/ROOT.war
6,通过http://192.168.12.1:8080/status可看出服务器的性能状况,连接状况等
<IfModule mpm_prefork_module>
ServerLimit 2000
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxClients 1000
MaxRequestsPerChild 10000
</IfModule>
<IfModule mpm_worker_module>
StartServers 3
MaxClients 600
MinSpareThreads 50
MaxSpareThreads 100
ThreadsPerChild 100
MaxRequestsPerChild 10000
</IfModule>其他部分,为默认参数。
如何设置httpd-mpm.conf 的参数呢?
启动apache时,出现这个错误。
原因为:在httpd.conf 中配置了多个虚拟主机,配置文件形式为 <VirtualHost *:80>
解决办法 把<VirtualHost *:80> 改为 <VirtualHost *>
虽然没有警告了,但是问题又出来了,多个虚拟主机中只能解析第一个,后边的所有域名都访问到第一个来。解决办法为:
http://mylinux.5d6d.com/thread-491-1-1.html
首先确定apache是使用哪种工作模式,是prefork模式还是worker模式,查看方法
apachectl -l
查看后显示
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_alias.c
mod_so.c
看到红色加粗部分,显示 prefork ,所以是prefork模式。
那么httpd-mpm.conf 中就该配置 # prefork MPM 部分了,prefork模式的默认配置是:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
如何去评估这些参数呢?先来看看各个参数的含义。
httpd.conf 中加入
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>
注释:
Expires 语法如下:
ExpiresByType type/encoding "<base> [plus] <num> <type>}*"
其中<base>是下列之一:
access
now (等价于'access')
modification
plus关键字是可选的。
<num>必须是整数,
<type>是下列之一:
years
months
weeks
days
hours
minutes
seconds
参考: http://apache.chinahtml.com/mod/mod_expires.html
虚拟主机配置文件中,需要加入
<Directory /data/web/test>
AllowOverride AuthConfig
</Directory>
然后在虚拟主机的主目录,即DocumentRoot 目录下
vi /data/web/test/.htaccess
加入
AuthName "frank share web"
AuthType Basic
AuthUserFile /data/web/test/.htpasswd
require valid-user
保存后,然后
创建apache的验证用户
htpasswd -c /data/web/test/.htpasswd test
#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
如果你想修改密码,可以如下
htpasswd -m .htpasswd test2
重启apache,即可。
到此,你已经配置完成。下面介绍另一种方式:
##################################
vi http.conf
在相应的虚拟主机配置文件段,加入
<Directory >
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd // 这个目录你可以随便写一个,没有限制
require valid-user
</Directory>
保存后,然后
创建apache的验证用户
htpasswd -c /data/.htpasswd test
- «
- 1
- ...
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- ...
- 63
- »