设为首页 收藏本站
查看: 1037|回复: 0

[经验分享] Tomcat学习--配置tomcat

[复制链接]

尚未签到

发表于 2015-8-7 10:34:55 | 显示全部楼层 |阅读模式
1.重定向web应用
  tomcat提供统一的配置文件%CATALINA%\conf\server.xml。在该文件配置信息会在整个tomcat部属的所有应用上生效,但同时它也带来一个问题,就是如果有进行tomcat版本的更新可能导致相应的server.xml配置信息被覆盖。如何做到当前tomcat配置对所有部属在此之上的应用配置相同,但又不会因为更新tomcat等原因导致配置信息被覆盖呢?答案就是CATALINA_BASE环境变量。Tomcat在部属应用时会按照%CATALINA_BASE%\conf下的配置文件启动%CATALINA_HOME%下的tomcat应用。例如:



mkdir  tomcatAppOne
cp -a $CATALINA_HOME\conf  .

  创建tomcatAppOne目录,将tomcat安装目录下conf文件夹全部复制到tomcatAppOne下。
  随后,配置tomcatAppOne/conf/server.xml文件。例如将访问端口设置到8081



   

  随后,启设置CATALINA_BASE环境变量并启动tomcat



set CATALINA_BASE=d:/tomcatAppOne
catalina start

  在相应的启动输出信息内可以看到,当前tomcat已经使用tomcatAppOne下的server.xml配置的8081端口监听Http请求了。
DSC0000.jpg

2.变更Http监听端口8080为80


  • tomcat默认监听HTTP请求的端口是8080,这主要 由于默认HTTP 80端口又可能被其他应用使用才故意为之。若想将其修改为默认端口,可以通过conf/server.xml文件来进行



   

  设置完毕后启动应用,tomcat这会监听80端口的HTTP请求。


  • 不过设置80端口有一个缺点,就是想要开启80端口,用户必须具有root权限(端口号小于1024的,开启都需要具有root权限)。如果用户没有root权限,则可以通过设置iptables来进行,具体命令如下



iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080

  这两句命令的主要作用就是将所有http 80端口连接都重定向到8080端口,此外,还需要设置server.xml





  启动tomcat,此时所有80端口的http连接都将有8080端口来处理了。

3.变更tomcat内置的jsp编译器
  tomcat 5.5及以上版本默认的使用内置的Eclipse JDT编译器来编译jsp.Eclipse JDT的作用与JDK提供的javac功能上是一致的。但这两者之间还是存在一个区别:Eclipse JDT由于发布时间的关系,可能对java最新的一些特性并不完全支持。因此,某些情况下希望将tomcat内置的JDT编译器替换成jdk的javac。在tomcat 5.5及以上版本提供两种编译器选择:


  • 内置默认的eclipse JDT编译器
  • 使用Apache Ant来编译jsp,由于Ant默认采用JDK's JAVAC编译器,因此采用ANT编译jsp就等同于采用JAVAC
  如果希望采用ANT来替换JDT,具体的步骤如下:


  • 删除CATALINA_HOME\common\lib\jasper-compiler-jdt.jar文件
  • 将Ant下的ant.jar复制到common\lib下
  • 将jdk下的tool.jar复制到common\lib下
  操作完上述步骤后,启动tomcat,这当前将不在使用JDT而是ANT来编译jsp了。

4.安全性(Security)
  tomcat通过server.xml下的Realm与web.xml的来限制用于对tomcat内资源的访问。



  • Realms
  简单地讲,Realm就是用户,密码及角色所组成的配置信息。Tomcat提供四种不同Realm:
    1.UserDatabaseRealm
  UserDatabaseRealm通过加载配置在静态文件的信息来控制资源访问,该方式只会在tomcata启动时刻加载,因此无法在tomcat运行期间动态修改。tomcat提供conf/tomcat-users.xml来配置用户,密码,角色之间的关系













  通过在server.xml配置对应的UserDatabaseRealm来载入上述文件






  由于UserDatabaseRealm无法在运行时修改及明文存放密码等缘故,现实中使用该方式的应用较少。
    2.JDBCRealm
  JDBCRealm主要通过数据库来存储用户,密码和角色关系,相对UserDatabaseRealm,好处在于可以运行时修改。





  通过制定用户,密码和角色相关表单,来设置访问控制。JDBCRealm虽然可以动态修改,但是由于数据库连接信息仍然是以明文形式存储,因此安全性方面还是不足
  3.JNDIRealm
  通过LDAP方式来设置控制信息.
  4.JAASRealm
  通过使用Java Authentication and Authorization Service来配置控制信息。
  配置完毕Realm后,还需要在web.xml配置相应的才能起到控制作用。例如:






AAA

/member/*


member



BASIC
mmm



  • Authentication
  Tomcat提供四种级别的安全性认证方式:
  1.Basic authentication
  认证的用户名及密码通过明文传输。设置方式




BASIC
mmm


   2.Digest authentication
  认证信息采用信息摘要方式传输,可使用MD5,SHA等摘要算法。设置如下




DIGEST
mmm


  server.xml中定义的Realm设置摘要算法





  3.Form Authentication
  通过表单提交认证信息




FORM
mmm

/login.html
/error.html



    4.Client-cert Authentication
  使用client-cert认证,当前连接必须采用HTTPS.


  • Single Sign-On
  如果希望在访问资源尽可能的减少相同角色的密码输入,则可以通过在server.xml配置Single Sign-On来实现





  

  5.Session管理
  tomcat提供2种session持久化设置:


  • StandardManager:默认,只有当tomcat正常推出时才会执行保存session到catalina_home/work/catalina/hostname/webapp-name/的session.ser文件内
  • PersistenManager: 能实时保存session到指定的文件或者JDBC数据库中。
  此外,tomcat还提供通过web.xml配置session的过期时间(单位:分)




30


  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-95105-1-1.html 上篇帖子: 为在MyEclipse中配置Tomcat服务器郁闷的朋友们解决郁闷 下篇帖子: IIS与Tomcat共存的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表