- 浏览: 366749 次
文章分类
最新评论
-
strchi:
这个网站,什么都没有了
做小说搜索网站,这个是不是有可能会侵权的呢? -
从此醉:
楼主倒是给出解决办法啊
Java虚拟机支持的最大内存限制 -
kjmmlzq19851226:
又要增强客户体验,又要降低伪造攻击的概率,╮(╯▽╰)╭,程序 ...
Web安全测试之跨站请求伪造(CSRF)篇(图) -
zhangxinze:
linux下使用Java获取客户端ip地址?大家有何高见,我现 ...
怎样用Java来获取真实的IP地址 -
k_kid9157:
学习 感谢分享:-)
log4j的ConversionPattern参数的格式含义
WEB 服务器解决方案
Apache+Tomcat
作者:张浦
2007-4-26
<!--[if !supportLists]--> 1. <!--[endif]--> 概述
<!--[if !supportLists]--> 1.1. <!--[endif]--> 本文目的
描述建立简单高效的 apache 服务器,应用于集成 tomcat 服务。
即: apache+jk1.2+tomcat 部署方案中 apache 的安装配置和优化
<!--[if !supportLists]--> 1.2. <!--[endif]--> 环境及文档约定
操作系统: RedHat AS 4 update 1
硬件环境:普通 PC C4-2.8G/1G 内存
设系统的 IP 地址为: $IP
<!--[if !supportLists]--> 2. <!--[endif]--> JDK 安装配置
JDK 官方网站: http://java.sun.com
<!--[if !supportLists]--> 2.1. <!--[endif]--> 安装 JDK
JDK 版本: jdk1.5.0_05
下载地址:
http://192.18.108.219/ECom/EComTicketServlet/BEGIN5EA4351D3E051D464E9716D18FE4FF31
/-2147483648/2093779515/1/798890/798650/2093779515/2ts+/westCoastFSEND
/jdk-1.5.0_11-oth-JPR/jdk-1.5.0_11-oth-JPR:3/jdk-1_5_0_11-linux-i586-rpm.bin
# cd /tools
# wget http://192.18.108.219/ECom/EComTicketServlet/BEGIN5EA4351D3E051D464E9716D18FE4FF31/
-2147483648/2093779515/1/798890/798650/2093779515/2ts+/westCoastFSEND
/jdk-1.5.0_11-oth-JPR/jdk-1.5.0_11-oth-JPR:3/jdk-1_5_0_11-linux-i586-rpm.bin
# cd /tools
# chmod +x jdk-1_5_0_11-linux-i586-rpm.bin
# ./ jdk-1_5_0_11-linux-i586-rpm.bin
# rpm –ivq jdk-1_5_0_11-linux-i586.rpm
<!--[if !supportLists]--> 2.2. <!--[endif]--> 设置系统 JAVA 环境
Java 环境的设置是为了支持 tomcat 服务器的运行,主要需要设置的环境变量是 JAVA_HOME, 即 jdk 的安装路径。默认安装 jdk 的目录是 /usr/java/ jdk1.5.0_11
设置环境变量到系统环境配置文件 /etc/profile
# vi /etc/profile
加入: exprot JAVA_HOME=/usr/java/ jdk1.5.0_11
# source /etc/profile
<!--[if !supportLists]--> 3. <!--[endif]--> TOMCAT 安装配置
Tomcat 官方网站: http://tomcat.apache.org/
<!--[if !supportLists]--> 3.1. <!--[endif]--> 获取 Tomcat
本文使用 Tomcat-5.5.17
下载地址: http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.tar.gz
如果目标服务器可以上公网,可以直接在目标服务器下载该版本 tomcat ,标准发行版本比较小,只有几兆而已。
$ cd /tools
$ wget http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.tar.gz
<!--[if !supportLists]--> 3.2. <!--[endif]--> 安装 Tomcat
<!--[if !supportLists]--> 3.2.1. <!--[endif]--> 安装
首先在获取 tomcat 软件版本后,直接解压,并拷贝到对应的安装目录就可以了,一般 linux 下安装目录可以设置在 /usr/local 下面,现在设 Tomcat 安装目录为 $CATALINA_HOME 。
# cd /tools
# tar –xzvf apache-tomcat-5.5.17.tar.gz
# cp apache-tomcat-5.5.17 /usr/local/tomcat-5.5.17
即: $CATALINA_HOME=/usr/local/tomcat-5.5.17
<!--[if !supportLists]--> 3.2.2. <!--[endif]--> 验证安装
请确保系统的 8080 端口没有被占用,因为 tomcat 默认使用 8080 端口。
# $CATALINA_HOME/bin/startup.sh
启动浏览器(如 IE ),输入 http://$IP:8080
如果显示了有 tomcat 图标的 tomcat 首页的话,表示 tomcat 服务器正常 .
<!--[if !supportLists]--> 3.2.3. <!--[endif]--> 常见问题
<!--[if !supportLists]--> 1. <!--[endif]--> 确保服务器操作系统防火墙关闭
<!--[if !supportLists]--> 2. <!--[endif]--> 确保端口没有被其他程序占用,验证方法是 :
关闭 tomcat 服务器( $CATALINA_HOME/bin/shutdown.sh )
telnet $IP 8080
如果仍然能连通,说明 8080 端口已经被其他程序使用。
<!--[if !supportLists]--> 3.3. <!--[endif]--> 配置与优化
我的其他文章参考: TOMCAT-5.5.X优化配置
<!--[if !supportLists]--> 3.4. <!--[endif]--> APR 整合
我的其他文章参考: TOMCAT-5.5.X整合APR
<!--[if !supportLists]--> 4. <!--[endif]--> APACHE 安装配置
<!--[if !supportLists]--> 4.1. <!--[endif]--> 获取 Apache 软件
Apache2.0.59 : http://httpd.apache.org
本例使用 linux source 包版本
可以直接下载:
# cd /tools
# wget http://httpd.apache.org/xxxx/xxxx/ apache-2.0.59.tar.gz
<!--[if !supportLists]--> 4.2. <!--[endif]--> Apache 安装配置与优化
我的其他文章参考: Apache安装配置与优化
<!--[if !supportLists]--> 5. <!--[endif]--> APACHE+TOMCA 整合配置
官方参考: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
<!--[if !supportLists]--> 5.1. <!--[endif]--> 获取 JK 软件
下载地址:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/v1.2.0/src/
jakarta-tomcat-connectors-jk-1.2.0-src.tar.gz
# cd /tools
# wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/v1.2.0/src/
jakarta-tomcat-connectors-jk-1.2.0-src.tar.gz
<!--[if !supportLists]--> 5.2. <!--[endif]--> 安装编译 JK
# cd /tools
# tar –xzvf jakarta-tomcat-connectors-jk-1.2.0-src.tar.gz
# cd tomcat-connectors-1.2.20-src
# cd native
# ./configure --with-apxs=$APACHE_HOME/bin/apxs // 使用 apache 的 apxs
# make
# make install
成功安装完成后,会在 $APACHE_HOME/modules 中发现 mod_jk.so 文件。
<!--[if !supportLists]--> 5.3. <!--[endif]--> 配置 JK 连接 APACHE 和 TOMCAT
<!--[if !supportLists]--> 1. <!--[endif]--> 配置 worker.properties
在 $APACHE_HOME/conf 下建立 worker.properties
# vi worker.properties
写入:
# Define 1 real worker using ajp13
worker.list=tomcat
# Set properties for worker1 (ajp13)
worker.tomcat.type=ajp13
worker.tomcat.host=127.0.0.1
worker.tomcat.port=8009
worker.tomcat.cachesize=10
worker.tomcat.cache_timeout=600
<!--[if !supportLists]--> 2. <!--[endif]--> 配置 JK 连接
配置 $APACHE_HOME/conf 下 httpd.con 文件
# vi httpd.conf
写入:
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /usr/local/apache2.0.59/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/apache2.0.59/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel error
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkShmFile /usr/local/apache2/logs/mod_jk.shm
# Send jsp,servlet for context * to worker named tomcat
JkMount /dwr/* tomcat
JkMount /*.jsp tomcat
JkMount /*.mvc tomcat
JkMount /*.do tomcat
JkMount /captcha.jpg tomcat
JkMount /j_acegi_security_check tomcat
JkMount /j_acegi_logout tomcat
JkMount /admin/adminlogout tomcat
JkMount /WEB-INF/* tomcat
<!--[if !supportLists]--> 5.4. <!--[endif]--> 验证配置
确保 tomcat 配置正确,并能正常启动。
启动 tomcat ,然后启动 apache ,测试是否配置成功。
<!--[if !supportLists]--> 6. <!--[endif]--> 完整的配置参考
<!--[if !supportLists]--> 6.1. <!--[endif]--> 环境变量
export PATH = $JAVA_HOME / bin : $PATH
export JAVA_OPTS = " $CATALINA_OPTS -Xms700m -Xmx700m
-Djava.library.path=/usr/local/apr/lib "
<!--[if !supportLists]--> 6.2. <!--[endif]--> Tomcat 相关配置文件
Server.xml :
< GlobalNamingResources >
<!-- Used by Manager webapp -->
< Resource name ="UserDatabase" auth ="Container"
type ="org.apache.catalina.UserDatabase"
description ="User database that can be updated and saved"
factory ="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname ="conf/tomcat-users.xml" />
</ GlobalNamingResources >
< Service name ="Catalina" >
< Connector port ="8009"
maxTreads ="500" minSpareThreads ="10" maxSpareThreads ="50"
acceptCount ="50" connectionTimeout ="60000"
enableLookups ="false" redirectPort ="8443" protocol ="AJP/1.3" />
< Engine name ="Catalina" defaultHost ="localhost" >
< Realm className ="org.apache.catalina.realm.UserDatabaseRealm"
resourceName ="UserDatabase" />
< Host name ="localhost" appBase =""
unpackWARs ="true" autoDeploy ="true"
xmlValidation ="false" xmlNamespaceAware ="false" >
< Context path ="" docBase ="/www/xxxxx/site/web" reloadable ="true" debug ="0" />
</ Host >
</ Engine >
</ Service >
</ Server >
<!--[if !supportLists]--> 6.3. <!--[endif]--> apache 相关配置文件
<!--[if !supportLists]--> 1. <!--[endif]--> httpd.conf
ServerRoot /usr/local/apache2.0.59
DocumentRoot /www/xxxxx/site/web
DirectoryIndex index.jsp index.htm index.html
User webuser
Group cvs
< IfModule prefork.c >
ServerLimit 800
MaxClients 800
StartServers 5
MinSpareServers 5
MaxSpareServers 10
</ IfModule >
< IfModule worker.c >
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</ IfModule >
MaxRequestsPerChild 0
ErrorLog logs/error_log
< Directory />
Options FollowSymLinks
AllowOverride None
</ Directory >
<!--[if !supportLists]--> 2. <!--[endif]--> conf/includes/deflate.conf
# Compress everything except images
< Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</ Location >
<!--[if !supportLists]--> 3. <!--[endif]--> conf/includes/ mod_jk.conf
LoadModule jk_module modules / mod_jk . so
# Where to find workers.properties
JkWorkersFile / usr / local / apache2 . 0.59 / conf / workers . properties
# Where to put jk logs
JkLogFile / usr / local / apache2 . 0.59 / logs / mod_jk . log
# Set the jk log level [debug/error/info]
JkLogLevel error
# Select the log format
JkLogStampFormat " [%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions + ForwardKeySize + ForwardURICompat - ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat " %w %V %T "
JkShmFile / usr / local / apache2 / logs / mod_jk . shm
# Send jsp,servlet for context * to worker named tomcat
JkMount / dwr /* tomcat
JkMount /*. jsp tomcat
发表评论
-
推荐JS压缩工具ESC
2009-01-08 20:13 2114昨天将CheckBox转Text的代码从HTML中剥离出来之 ... -
怎样用Java来获取真实的IP地址
2009-01-06 13:05 7439在JSP里,获取客户端的IP地址的方法是:request.ge ... -
CLOSE_WAIT状态的生成原因[转]
2008-12-16 14:50 3036CLOSE_WAIT状态的生成原因首先我们知道,如果我们的Cl ... -
tcp相关状态
2008-12-16 14:42 1275客户端口实际上就是从本机访问其它计算机服务时打开的源端 ... -
网站前端优化一些小经验
2008-12-04 20:32 918着第3届bt论坛的顺利结 ... -
Base64基础(2)
2008-12-02 10:19 1295url: http://zh.wikipedia.org/wi ... -
什么是Base64以及sun.misc.BASE64Decoder的用法
2008-11-24 15:10 4808Base64是网络上最常见的用于传输8Bit字节代码的编码方式 ... -
Regex的一些常用例子
2008-11-11 12:37 1302import java.util.HashMap; imp ... -
值得收藏的健康知识
2008-11-03 11:53 1525不要死于无知。 不要拿 ... -
java的File#renameTo(File)方法的陷井
2008-10-27 10:17 1650以前我一直以为File#renameTo(File)方法与OS ... -
垂直搜索的信息分类如何做
2008-10-24 10:09 1453垂直搜索的优势就在 ... -
Twitter的增容处理
2008-10-21 12:00 966文/Patrick Joyce译/杨昊 由于之前 ... -
一步步图解 Tomcat 体系结构
2008-10-08 10:42 2251Apache Tomcat 是一款非常著名的开源 Servle ... -
Java编码原理与解决方案
2008-10-07 22:40 1279一、Java编码是怎么回事? 对于使用中文以及其他非拉丁语系语 ... -
JAVA分布式应用中使用XML数据
2008-09-24 15:14 1266可扩展标记语言(XML) ... -
红黑树(red-black tree)算法,附AVL树的比较
2008-09-03 15:01 14099红黑树的定义 正如在CLR ... -
状态对象:数据库的替代者
2008-09-03 10:39 881这是一个实战中非常重 ... -
一个计算机专业学生几年的编程经验汇总
2008-08-02 21:04 1385想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈 ... -
UUID的介绍与使用
2008-07-30 17:24 2858一.UUID的介绍:UUID又称为通用唯一标识符,是一个128 ... -
htmlparser使用指南
2008-07-05 14:07 2990需要做一个垂直搜索引擎,比较了nekohtml和htmlp ...
相关推荐
上传、java mail和分页显示、web编程中文乱码问题及解决方案、应用程序的打包和部署等。书中还深入讲解了客户端验证框架jsvalidation、在线文本编辑器fckeditor和apache commons的一些类库等功能强大的实用开发工具...
主要内容包括web应用程序运行原理、主流集成开发工具(eclipse/myeclipse)和运行环境(tomcat)的配置和使用、servlet、jsp、jdbc、jsp表达式语言(el)、servlet监听器和过滤器、定制标记库、jstl、mvc模式、dao...
基于SSM的超市订单管理系统-开发第一天 运行环境:该系统需要以下运行...这个背景下,我们创建了基于SSM技术栈的超市订单管理系统,该系统的目标是为超市提供一个全面的解决方案,使其能够适应市场变化,提高竞争力。
基于SSM的超市订单管理系统-...这个背景下,我们创建了基于SSM技术栈的超市订单管理系统,该系统的目标是为超市提供一个全面的解决方案,使其能够适应市场变化,提高竞争力。 今日效果:今天完善了登录和用户退出模块!
这个背景下,我们创建了基于SSM技术栈的超市订单管理系统,该系统的目标是为超市提供一个全面的解决方案,使其能够适应市场变化,提高竞争力。 今日效果:昨天完善了登录和用户退出模块!今天完善了用户管理页面的...
这个背景下,我们创建了基于SSM技术栈的超市订单管理系统,该系统的目标是为超市提供一个全面的解决方案,使其能够适应市场变化,提高竞争力。 今日效果:在前几天完成的基础之上,今天完善了用户管理页面的、新增...
3) 通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2 WEB应用开发架构思路 1) 应用开发实现MVC架构三层架构进行web应用开发 2) 页面尽可能静态化...
该Web应用程序为诸如学院或大学之类的机构提供了系统的工具和全面的解决方案,以维护该学院所有学生,教职员工和其他人员的记录,并在必要时相应地对其进行更改。 它基于CRUD的原理-根据管理员对Web应用程序的输入...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...
JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...