Jboss迁移到Tomcat之手记(一)- Server.xml

简介:
首先是SSL配置问题,Tomcat默认是用APR的东东来做SSL,结果网络上找了openssl等组件来生成keystore文件也没完成APR SSL的配置,好像用了不同的算法来生成证书文件,配置参数也有不同。折腾了老久,最后只好弃之不用。
<!--APR library loader. Documentation at /docs/apr.html
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
-->
还好原来的SSL方式还支持:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
                               keystoreFile="${catalina.home}/conf/aaa.keystore" keystorePass="changeit"
                               clientAuth="false" sslProtocol="TLS"
         />
 
jdk生成证书库文件即可:
$JAVA_HOME/bin/keytool -genkeypair -alias proja -keyalg RSA -keystore /tmp/aaa.keystore
记住证书密码和库密码设成一致方便使用。
 
Tomcat默认8443作为SSL端口,如果要改为SSL默认端口443,需要tomcatroot身份启动,或者修改Tomcat启动方式(Under UNIX all ports <1024 are "privileged" ports. Only root may open a priviledged port.)。因为1024以下的端口为了安全原因默认只能为root打开。
而所有的非SSLconnectorredirectport记住要改成你的真实ssl端口号。
Tomcatnobody或其他非root用户启动,想用80/443端口的话,tomcat官网说可以用jsvc命令而不是catalina.sh来启动:
$TOMCAT_HOME/bin/jsvc \
      -user $TOMCAT_USER \
      -cp ./bin/bootstrap.jar \
      -outfile ./logs/catalina.out \
      -errfile ./logs/catalina.err \
      -pidfile "$CATALINA_PID" \
      \
      -Djava.endorsed.dirs=./common/endorsed \
      -Dcatalina.home="$CATALINA_HOME" \
      -Djava.io.tmpdir="$CATALINA_TMPDIR" \
      org.apache.catalina.startup.Bootstrap start
 
还有就是用iptables/ipchains网关/代理软件来实现端口重定向来把外部标准端口请求转到server8080/8443或其他非标准端口,如iptables可以如下配置:
iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d your hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -d your hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
 
或者用第三方连接器如CoyoteConenctor,据说也可以配置代理端口在连接器配置项里(未验证):
<Connector
  className="org.apache.catalina.connector.http.HttpConnector"
  port="8080"
  proxyPort="80"
>

 

 
Tomcat虚拟主机配置可以在<server><service><Engine>标签下配置:
Enginedefaulthost属性可以配置默认主机名,基本都localhost
其中的子元素<Host>为配置虚拟主机项,有name, appBase, unpackWARs, autoDeploy属性可以配置,如<host name=”localhost” appBase=”webapps” unpackWARS=”true” autoDeploy=”true”>,Host有子元素Valve可以配置各种特性,比较常用的access log配置:<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false"/>
Host还可以用Context子元素配置虚拟目录别名:
<Context path="/" docBase="projb.war" debug="0"/>
EngineValve子元素可以配置各种特性,比较有用的指定客户ip范围:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1|171.69.11[2-9].*|171.69.12[0-2].*| 1.*.*.*" deny="" />, allow/deny是一种wildcard模式定义。
 
另外,ServerGlobalNamingResources子元素,其中可以配置Resource来实现全局JNDI配置,如data source, JMS, LDAP等。Tomcat的全局JNDI配置也可以在$TOMCAT_HOME/conf/context.xml里配置。而app级的JNDI配置应该在$doc_base/project.war/META-INF/context.xml里配置,指定客户ip范围的Valve元素org.apache.catalina.valves.RemoteAddrValve也配置于此表明作用域为某个应用而不是所有tomcat应用。

本文转自 dannyy1026 51CTO博客,原文链接:
http://blog.51cto.com/dannyyuan/756002


相关文章
|
2月前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
111 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
7月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
1648 1
|
7月前
|
XML Java 应用服务中间件
Tomcat服务器Server.xml详解
Tomcat服务器Server.xml详解
|
Java 应用服务中间件
tomcat中server.xml详解
tomcat中server.xml详解
|
XML 存储 JSON
JavaWeb--快速入门XML&Tomcat
JavaWeb--快速入门XML&Tomcat
104 0
|
网络协议 应用服务中间件 网络安全
tomcat 组件与server.xml配置
tomcat 组件与server.xml配置
164 0
|
Java 应用服务中间件
Tomcat迁移weblogic的填坑之旅
Tomcat迁移weblogic的填坑之旅
136 0
|
应用服务中间件
JavaWeb--快速入门XML&Tomcat(三)
JavaWeb--快速入门XML&Tomcat(三)
87 0
JavaWeb--快速入门XML&Tomcat(三)
|
Java 应用服务中间件 容器
JavaWeb--快速入门XML&Tomcat(二)
JavaWeb--快速入门XML&Tomcat(二)
116 0
JavaWeb--快速入门XML&Tomcat(二)
|
XML 存储 JSON
JavaWeb--快速入门XML&Tomcat(一)
JavaWeb--快速入门XML&Tomcat(一)
331 0
JavaWeb--快速入门XML&Tomcat(一)