Center OS Tomcat7 服务器配置总结

tomcat7 目录结构

--- webapps 应用存放目录,可以配置Host 来决定这个文件的目录,可以配置多个Host,多个webapps

---ROOT 项目根目录,Tomcat会特殊对待这个目录,配置Host时会影响到这个目录

--- conf 配置文件存放目录 配置端口 Host Domain 等

--- logs 日志存放目录

--- work

--- bin 可执行文件存放目录

--- lib 第三方包存放目录

--- temp 临时文件存放目录

如何配置Tomcat的Host,Domain?

<Engine name="Catalina" defaultHost="www.jrpy.net">...</Engine>

<Host name="www.jrpy.net" appBase="webapps"

unpackWARs="true" autoDeploy="true" debug="0" reloadable="false">

<Context path="" docBase="D:/test/jrpynet" reloadable="true"/>

</Host>

Engine 在这个标签下可以配置访问域名,日志输出等。一个Tomcat只能配置一个Engine

defaultHost 配置默认访问域名,就是如果用IP,或者其他指向这个服务器的域名都会跳到

这个Host所指的项目,在Engine标签下必须存在defaultHost属性所指的Host.

Host 是用来配置访问域名的。

Host-name 表示的域名。 可以填localhost,和指向这个服务器的域名。

Host-appBase 当前Host的访问空间。 可以为一个绝对路径, 也可以填写一个相对于Tomcat Home的相对路径

unpackWARs 如果值为true 将会在程序启动时自动解压Host-appBase下的所有War文件

autoDeploy 如果值为true 将会自动部署Host-appBase目录下的所有项目

reloadable 如果为true 将会自动监听Host-appBase目录War文件和项目的变化,如果存在变化,将自动重新加载。

Host/Context 用来配置应用所在位置,访问ContentPath 等。

Context-path 用来配置项目的访问ContentPath 一般我们配置为 "" 这样就可以访问为根目录,

如果值为abc ,那么访问是要在Domain的后面加上abc然后在是访问路径和参数,如:http://domain:port/abc/...

docBase 配置项目目录,可以指向一个绝对路径,或者一个相对于Host-appBase的路径. 如果指向的是文件夹,那么文件夹里面的内容就是项目内容。

如果指向的为一个War文件,这个文件将会被解压到Host-appBase所指路径。 如果Host-appBase 不存在ROOT文件夹,而这个war文件为

非ROOT.war文件,那么这个war文件将会解压和部署两次,一个是ROOT项目,另外一个是它本身。所以建议将这个文件命名为ROOT.war文件。

这样就只会有一次解压和部署。

百牛信息技术bainiu.ltd整理发布于博客园

如何配置Log4j的日志存放路径?

在log4j.xml 或log4j.properties 文件中你会找到类似这样的配置

<param name="File" value="../logs/wmf_handler.log"/>

log44j 的日志配置路径,如果配置为 ../logs/... 在windows系统下面会将日志文件写到Tomcat 或者其他服务器的Home下面。

但是如果为Linux系统下,这样的配置将会把日志文件写的根目录下, 但是往往我们会在Linux下不会已Root用户启动Tomcat。

所以Tomcat将会没有权限写日志文件。 日志就不会成功写出。

那么解决方法就是,不要把配置写成 ../logs/... 这样的形式。 那么我们该这么写呢?配置到那个文件夹合适呢?

1. tomcat目录, 如果把日志写到这个目录,我们就有权限。 这个文件夹下面,日志会一直存在和追加。 方面以后追踪错误。

如果要配置到这个目录,我们可以使用这样的形式配置 ${catalina.home}/logs/...

因为 Tomcat 会在项目启动的时候设置catalina.home这个系统变量指向我们的Tomcat Home

2. 项目目录。 这个文件夹下面有两个好处。

1,我们可以配置来通过项目的web访问日志,

2,这个目录在我们项目重新部署时。可以方便删除日志文件,每次查看都是这次运行产生的日志

如果要配置到这个目录,我们可以使用这样的配置,${webapp.root}/logs/...

但是我们必须要在web.xml中存在Log4jConfigListener 监听器, 因为这个监听器会配置一个webapp.root

的系统变量指向我们的项目根目录, 你也可以自己配置 一个webapp.root 名字可以自己随便给。

也可以通过web.xml 配置这个名字(但是必须配合Log4jConfigListener) 。 配置代码如下:

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>wmfWebApp.root</param-value>

</context-param>

如何配置Tomcat的执行用户?

在Linux系统下,特别是服务,不能使用ROOT用户来启动Tomcat,

因为一旦使用ROOT用户来启动,Tomcat就会获得最高执行权限,

这样的话如果黑客入侵的虎就可以通过Tomcat来控制整个系统。

所以,我们不能使用Root用户运行Tomcat,那么我们该如何配置Tomcat的执行用户呢?

如何配置,请参考:http://os.51cto.com/art/201002/184813.htm

如何使用Tomcat配置域名跳转?

两种方式。

1. 使用apache + tomcat 配置 域名跳转 参考:http://gaoxingf.blog.51cto.com/612518/193209

2. 使用service.xml 中的Host + 域名跳转项目。

新建一个项目,使用Filter ,需要在xml中配置。 Filter具体代码如下:

import org.apache.commons.io.IOUtils;

import org.apache.http.HttpResponse;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import javax.servlet.*;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

/**

* Created with IntelliJ IDEA.

* User: Ryan

* Date: 14-2-11

* Time: 上午11:33

*/

public class ForwardFilter implements Filter {

private String forwardTo;

@Override

public void init(FilterConfig config) throws ServletException {

forwardTo = config.getInitParameter("to");

if (null == forwardTo) {

throw new RuntimeException("you must set forward to in init parameter.");

}

}

@Override

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;

request.setCharacterEncoding("utf-8");

// 获取请求路径

String serverName = request.getServerName();

int end = serverName.indexOf(forwardTo);

String path = request.getRequestURI();

String requestURI = "http://" + forwardTo + path;

if (end == -1 || end == 0) {

if ("get".equalsIgnoreCase(request.getMethod())) {

String queryString = (request.getQueryString() == null ? "" : "?" + request.getQueryString());

response.setStatus(301);

response.setHeader("Location", requestURI + queryString);

response.setHeader("Connection", "close");

} else {

List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();

Map pms = request.getParameterMap();

if (pms != null && !pms.isEmpty()) {

for (Object key : pms.keySet()) {

Object val = pms.get(key);

if (val instanceof String[]) {

String[] values = (String[]) val;

for (String value : values) {

list.add(new BasicNameValuePair(key.toString(), value));

}

} else {

list.add(new BasicNameValuePair(key.toString(), val.toString()));

}

}

}

try {

// 实现将请求的参数封装到表单中,请求体重

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "utf-8");

// 使用Post方式提交数据

HttpPost httpPost = new HttpPost(requestURI);

httpPost.setEntity(entity);

// 指定post请求

DefaultHttpClient client = new DefaultHttpClient();

HttpResponse httpResponse = client.execute(httpPost);

print(response, IOUtils.toString(httpResponse.getEntity().getContent(), "utf-8"));

} catch (Exception e) {

e.printStackTrace();

}

}

} else {

chain.doFilter(request, response);

}

}

//向请求端发送返回数据

public void print(HttpServletResponse response, String content) {

try {

response.setContentType("text/html;charset=utf-8");

response.setCharacterEncoding("utf-8");

response.getWriter().print(content);

response.getWriter().flush();

response.getWriter().close();

} catch (Exception e) {

e.printStackTrace();

}

}

@Override

public void destroy() {

}

}

如何配置启动tomcat时使用大内存

CATALINA_OPTS="-Xms512m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m"

将这句加入到 /etc/init.d/tomcat 文件的最开始。

或者在启动tomcat时先设置这个变量

时间: 2024-10-22 17:02:40

Center OS Tomcat7 服务器配置总结的相关文章

linux center os 6.5 开放IP地址

#> /sbin/iptables -I INPUT -p tcp --dport 80 -j  ACCEPT                            # 开放80端口了 linux center os 6.5 开放IP地址,布布扣,bubuko.com

center os 安装mysql5.6

center os 安装mysql5.6,请参看我的csdn博客文章. http://blog.csdn.net/linsongbin1/article/details/51594555

Center OS jdk tomcat安装

一.jdk安装 1.下载jdk    jdk-6u26-linux-i586-rpm.bin    2  安装jdk    #sh jdk-6u26-linux-i586-rpm.bin 3.#set java environmentexport JAVA_HOME=/usr/local/web_server/jdk1.6.0_25export JRE_HOME=/usr/local/web_server/jdk1.6.0_25/jreexport CLASSPATH=$JAVA_HOME/li

Center OS mongodb安装

一.下载        1.#cd /usr/local/src     2.#wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz 二. 解压文件到某目录下,然后重命名: 1.# tzr -xzvf mongodb-linux-x86_64-2.4.8.tgz        2.# mv mongodb-linux-x86_64-2.4.8 /usr/local/web_server/mongodb 三.查看安装

center os

CentOS.Ubuntu.Debian三个linux比较异同 Center OS 7 安装 $$ center os 安装mysql5.6 Linux学习之Center os网络配置 Cent Os 安装 java 环境 jdk Cent OS 常用配置命令 CenterOS下从零起步简单部署RockMongo cent os下搭建简单的服务器

Center OS 7安装 Apollo

声明: 每个人的情况都不一样,所以大家在看教程的时候自行斟酌,最好先扫一遍,再来根据自身情况进行操作.同时,遇到的问题也可能不尽相同,要灵活处理. 了解: Apollo是从原始ActiveMQ的基础构建一个新的更快的,更可靠的,使用完全不同的线程和消息调度架构来实现的. Apollo是一个多协议的代理,支持MQTT,WebSockets等等. MQTT服务器其实相当于一个转发者的角色,也相当于一个公众平台,所有客户端连接到此平台进行消息主题的发布及订阅.服务器其实是一个消息中转站 一.安装Jav

Linux下Aphche配制教程(Center Os)

前几天换了一台服务器,重新配了一台web服务器,大概流程如下(由于闲编译比较烦锁,所以直接yum安装): 一. 安装Web服务器软件 yum install httpd 二. 安装php yum install php*    yum -y install php*   --skip-broken 三. 安装mysql yum install mysql* 四. 经过以上三个步骤,已经完成apache.php.mysql的安装,接一下直接简单的配制即可 (1)配制站点 vim /etc/http

center os 下redis安装

解压并进入其目录 make cd src make install 默认情况,Redis不是在后台运行,我们需要把redis放在后台运行 vim /usr/local/redis/etc/redis.conf  #自己redis解压后的文件 修改之前记得备份 将daemonize的值改为yes cd /src redis-server /etc/redis.conf  #同样指向自己修改后的配置文件 redis-cli -p 6379 或者 redis-cli #端口没有修改可以不指定 ping

Center os 用户环境变量

vi ~/.bash_profile进入用户环境变量设置 export JAVA_HOME=/usr/java/jdk1.7.0_76export JAVA_BIN=$JAVA_HOME/binexport PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH source ~/