1、使用war包部署web站点

[root@tomcat webapps]# pwd

/application/tomcat/webapps

[root@tomcat webapps]# rz      #上传memtest.war,上传的是网上下载编译好的java项目

[root@tomcat webapps]# ls        #等待一会儿就会解压war包

docs  examples  host-manager  manager  memtest  memtest.war  ROOT

浏览器访问http://10.0.0.7:8080/memtest

 

2、tomcat auth basic认证的实现

为站点的某个路径配置认证

2.1 修改tomcat的conf目录下的tomcat-users.xml文件

添加角色用户名和密码

[root@tomcat ~]# vim /application/tomcat/conf/tomcat-users.xml

…………

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

</tomcat-users>  #→在此行前加入上面三行

2.2 修改myapp/WEB-INF/web.xml文件

这个文件的内容可以效仿系统自带的manager页面认证的配置文件/application/tomcat/webapps/manager/WEB-INF/web.xml进行配置

[root@tomcat jpress]# vim WEB-INF/web.xml

<security-constraint>

   <web-resource-collection>

     <web-resource-name>HTML Manager interface (for humans)</web-resource-name>

     <url-pattern>/admin/*</url-pattern>

   </web-resource-collection>

   <auth-constraint>

      <role-name>manager-gui</role-name>

   </auth-constraint>

 </security-constraint>

<login-config>

   <auth-method>BASIC</auth-method>

   <realm-name>Jpress admin</realm-name>

 </login-config>

[root@tomcat jpress]# /application/tomcat/bin/shutdown.sh        #重启tomcat

[root@tomcat jpress]# /application/tomcat/bin/startup.sh

访问网站admin路径时就需要认证

 

3、自定义默认网站目录

[root@tomcat ~]# vim /application/tomcat/conf/server.xml

     <Host name="localhost"  appBase="webapps"

           unpackWARs="true" autoDeploy="true">

        <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>

[root@tomcat ~]# /application/tomcat/bin/shutdown.sh        #重启tomcat

[root@tomcat ~]# /application/tomcat/bin/startup.sh

访问http://10.0.0.7:8080即可访问到网站

 

4、tomcat多实例及集群架构

4.1 tomcat多实例

4.1.1 复制tomcat目录

[root@tomcat ~]# cd /application/

[root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_1

[root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_2

4.1.2 修改配置文件

[root@tomcat application]# mkdir -p /data/www/www/ROOT

[root@tomcat application]# cp /application/tomcat/webapps/memtest/meminfo.jsp /data/www/www/ROOT/

[root@tomcat ~]# sed -i '22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_1/conf/server.xml

[root@tomcat ~]# sed -i '22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_2/conf/server.xml

[root@tomcat ~]# diff /application/tomcat/conf/server.xml  /application/tomcat8_1/conf/server.xml  

22c22

< <Server port="8005" shutdown="SHUTDOWN">

---

> <Server port="8011" shutdown="SHUTDOWN">

69c69

<     <Connector port="8080" protocol="HTTP/1.1"

---

>     <Connector port="8081" protocol="HTTP/1.1"

123c123

<       <Host name="localhost"  appBase="/application/tomcat/webapps/memtest"

---

>       <Host name="localhost"   appBase="/data/www/www"

[root@tomcat ~]# diff /application/tomcat/conf/server.xml  /application/tomcat8_2/conf/server.xml

22c22

< <Server port="8005" shutdown="SHUTDOWN">

---

> <Server port="8012" shutdown="SHUTDOWN">

69c69

<     <Connector port="8080" protocol="HTTP/1.1"

---

>     <Connector port="8082" protocol="HTTP/1.1"

123c123

<       <Host name="localhost"  appBase="/application/tomcat/webapps/memtest"

---

>       <Host name="localhost"    appBase="/data/www/www"

4.1.3 启动多实例

for i in {1..2};do /application/tomcat8_$i/bin/startup.sh;done

netstat -tunlp|grep java

4.2 tomcat集群

使用nginx+tomcat反向代理集群

[root@tomcat ~]# vim /application/nginx/conf/nginx.conf

   upstream web_pools {

       server 127.0.0.1:8081;

       server 127.0.0.1:8082;

       }

   server {

       listen       80;

       server_name  localhost;

       location / {

           root   html;

           index  index.jsp index.html index.htm;

           proxy_pass http://web_pools;

       }

    }

[root@tomcat ~]# /application/nginx/sbin/nginx -t

[root@tomcat ~]# /application/nginx/sbin/nginx

浏览器直接访问ip地址即可访问到网站

 

5、tomcat优化

5.1 安全优化

降权启动

telnet管理端口保护

ajp连接端口保护

禁用管理端

5.2 性能优化

5.2.1 屏蔽dns查询enableLookups="false"

<Connector  port="8081" protocol="HTTP/1.1"

              connectionTimeout="6000" enableLookups="false" acceptCount="800"

              redirectPort="8443" />

5.2.2 jvm调优

Tomcat较耗内存,如果系统资源有限,那就需要进行调优,提高资源使用率

1、增加最大连接数

2、调整工作模式

3、启用gzip压缩

4、调整JVM内存大小

5、作为Web时,动静分离

6、合理选择垃圾回收算法

7、尽量使用较新JDK版本

优化catalina.sh配置文件。在catalina.sh配置文件中添加以下代码:

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m"

server:一定要作为第一个参数,在多个CPU时性能佳

-Xms:初始堆内存Heap大小,使用的最小内存,cpu性能高时此值应设的大一些

-Xmx:初始堆内存heap最大值,使用的最大内存

上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。

-XX:PermSize:设定内存的永久保存区域

-XX:MaxPermSize:设定最大内存的永久保存区域

-XX:MaxNewSize:

-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.

+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

-Xss:每个线程的Stack大小

-verbose:gc 现实垃圾收集信息

-Xloggc:gc.log 指定垃圾收集日志文件

-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一

-XX:+UseParNewGC :缩短minor收集的时间

-XX:+UseConcMarkSweepGC :缩短major收集的时间


©著作权归作者所有:来自51CTO博客作者山山仙人的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 2020年Github星级前20名JavaScript框架性能比较
  2. OpenShift容量规划方法
  3. uboot的常用命令及用法
  4. 全面解析|搞懂Nginx这一篇就够了
  5. Linux命令cURL如何访问FTP服务器
  6. 一键获取linux内存、cpu、磁盘IO等信息脚本编写,及其原理详解
  7. 给我1万字,也讲不清Java内存排查。1万不行来2万~.~
  8. 变量的三个特征
  9. Vue(7):vue项目部署到服务器通过公网IP访问

随机推荐

  1. 列出所有行,如果行在其他表中退出,则添加其
  2. [置顶] sqlserver性能调优方法论
  3. [置顶] SQL0668N 原因码为 "1",所
  4. 如何把sql查询出的结果写入到一个表中?
  5. MySQL学习总结----数据操作
  6. 后IOE时代,Mysql 与 Postgre SQL的对比
  7. sql 如何对返回为空值指定值
  8. python操作mysql 抛出Unread result foun
  9. MySQL5.7.11版本,64位绿色版安装
  10. 'where'in with duplicates或'select dis