-
linux下的jdk和tomcat的安装与配置
查看全部 -
优化配置
缓存优化(nginx、gzip)
运动模式
BIO:效率低下,一个线程只能处理一个请求,请求过多的时候,线程会相应的增加,很浪费资源,tomcat7以下版本是BIO
NIO:基于缓存区、非阻塞的I/O。相对于BIO效率更高(利用java异步I/O,少量线程处理大量请求)
APR:tomcat7及以上默认模式。需要操作系统的支持(tomcat7以及以上版本在操作系统安装了APR时候,tomcat默认是APR模式)
查看全部 -
安全规范
1、账号管理、认证授权
(1)共享,无关账号
在conf/tomcat-uesrs.xml中配置账号密码以及权限
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="admin123456" roles="admin-gui, manager-gui"/>
(2)口令密码:定期修改
(3)用户权限
2、日志配置操作
conf/server.xml文件中打开注释即可
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
含义解释:
className:log日志包
directory:日志文件存放的目录
prefix:日志文件名称前缀
suffix:日志文件后缀名
pattern:日志格式
3、设备其他配置操作
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
查看全部 -
Cookies
1、保存咋客户端的纯文本文件
2、cookie实现离线购物车(场景应用)
3、XSS-跨站脚本攻击
在tomcat context.xml配置文件中的context节点设置useHttpOnly=true即可开启cookie加密,提高安全性,使cookie不那么容易被窃取,预防xss攻击
查看全部 -
tomcat安全配置:
1、初始化配置:
(1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。
cmd命令窗口:telnet 127.0.0.1 8005 回车,然后输入SHUTDOWN命令关闭服务
为了安全起见,可以修改关闭的端口号以及关闭命令,如下:
<Server port="8555" shutdown="GOTODIE">
(2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。
版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。
catalina.jar\org\apache\catalina\util\ServerInfo.properties
server.info=Apache Tomcat/8.5.31改为NO VERSION
(3)禁用Tomcat管理页面;防止黑客通过tomcat管理界面对tomcat进行攻击。
方法:将Root文件重命名,重新建一个空的Root文件。
(4)自定义错误页面;在webapps/ROOT目录下,新建一个error.html错误页面,然后配置一下conf/web.xml
(5)AJP端口管理: AJP就是为tomcat与http服务器之间通信而定制的一个协议,能够提供比较高的通信速度和效率。如果前端用的是apach服务器,就会使用到这个AJP连接器。但是如果前端用的是nginx做的反向代理,就可以不使用这个连接器,就需要注释掉这个连接器,步骤如下:
conf/server.xml文件如下:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />注释掉即可。
(6)启用cookie的HttpOnly;
查看全部 -
tomcat安全配置:
1、初始化配置:
(1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。
cmd命令窗口:telnet 127.0.0.1 8005 回车,然后输入SHUTDOWN命令关闭服务
为了安全起见,可以修改关闭的端口号以及关闭命令,如下:
<Server port="8555" shutdown="GOTODIE">
(2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。
版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。
catalina.jar\org\apache\catalina\util\ServerInfo.properties
server.info=Apache Tomcat/8.5.31改为NO VERSION
(3)禁用Tomcat管理页面;
防止黑客通过tomcat管理界面对tomcat进行攻击。
方法:将Root文件重命名,重新建一个空的Root文件。
(4)自定义错误页面;在webapps/ROOT目录下,新建一个error.html错误页面,然后配置一下conf/web.xml
(5)AJP端口管理;
(6)启用cookie的HttpOnly;
查看全部 -
tomcat安全配置:
1、初始化配置:
(1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。
cmd命令窗口:telnet 127.0.0.1 8005 回车,然后输入SHUTDOWN命令关闭服务
为了安全起见,可以修改关闭的端口号以及关闭命令,如下:
<Server port="8555" shutdown="GOTODIE">
(2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。
版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。
catalina.jar\org\apache\catalina\util\ServerInfo.properties
server.info=Apache Tomcat/8.5.31改为NO VERSION
(3)禁用Tomcat管理页面;
防止黑客通过tomcat管理界面对tomcat进行攻击。
方法:将Root文件重命名,重新建一个空的Root文件。
(4)自定义错误页面;
(5)AJP端口管理;
(6)启用cookie的HttpOnly;
查看全部 -
tomcat安全配置:
1、初始化配置:
(1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。
cmd命令窗口:telnet 127.0.0.1 8005 回车,然后输入SHUTDOWN命令关闭服务
为了安全起见,可以修改关闭的端口号以及关闭命令,如下:
<Server port="8555" shutdown="GOTODIE">
(2)隐藏版本信息;
防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。
版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。
catalina.jar\org\apache\catalina\util\ServerInfo.properties
server.info=Apache Tomcat/8.5.31改为NO VERSION
(3)禁用Tomcat管理页面;
(4)自定义错误页面;
(5)AJP端口管理;
(6)启用cookie的HttpOnly;
查看全部 -
tomcat安全配置:
1、初始化配置:
(1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。
cmd命令窗口:telnet 127.0.0.1 8005 回车,然后输入SHUTDOWN命令关闭服务
为了安全起见,可以修改关闭的端口号以及关闭命令,如下:
<Server port="8555" shutdown="GOTODIE">
(2)隐藏版本信息;
(3)禁用Tomcat管理页面;
(4)自定义错误页面;
(5)AJP端口管理;
(6)启用cookie的HttpOnly;
查看全部 -
多域名访问:提高资源利用率
如何配置:基于ip地址或者基于端口的虚拟主机
基于ip地址配置虚拟主机:
<Host name="主机名" appBase="项目地址" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." debug="0" />
</Host>
同时配置操作系统host文件: 127.0.0.1 主机名
基于端口配置虚拟主机:
tomcat的server.xml文件也可以配置多个虚拟主机,
相同域名不同端口可以通过增加service节点实现,
不同的域名则可以同过增加host节点实现
查看全部 -
单点登录方式:
(1)以Cookie作为凭证媒介;
(2)通过jsop实现;
(3)通过页面重定向的方式实现;
(4)使用第三方插件实现,如CAS
CAS:开源的企业级单点登录解决方案。
开源的企业级单点登录解决方案
从结构上:CAS Server和CAS Client
CAS Server:需要独立部署,负责对用户的认证工作。
CAS Client:负责对客户端的受保护的资源的访问请求
查看全部 -
Tomcat实现web管理
1、管理界面功能简述
2、使用tomcat管理界面发布项目
1. Server Status: 服务器的状态
2. Manager App: 应用管理
3. Host Manager: 主机管理
修改默认发布的最大值配置项
地址:webapps/manager/WEB-INF/web.xml 50行左右
max-file-size
max-request-size
更改web.xml配置文件下的
<multipart-config>
<max-file-size>524288000</max-file-size>
<max-request-size>524288000</max-request-size>
<file-size-threshold>0</fiile-size-threshold>
</multipart-config>
查看全部 -
在Tomcat的conf/context.xml中配置
在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下:<?xml version='1.0' encoding='utf-8'?> <Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context>
配置连接池:
<?xml version='1.0' encoding='utf-8'?>
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!--配置oracle数据库的连接池--> <Resource name="jdbc/oracleds" author="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger" driverClassName="oracle.jdbc.dirver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ora9" /> <!--配置mysql数据库的连接池, 需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下 maxIdle 连接池中最多可空闲maxIdle个连接 minIdle 连接池中最少空闲maxIdle个连接 initialSize 初始化连接数目 maxWait 连接池中连接用完时,新的请求等待时间,毫秒 username 数据库用户名 password 数据库密码 --> <Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource" username="root" password="root" maxIdle="30" maxWait="10000" maxActive="100" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_blog" /> </Context>
配置好后需要注意的两个步骤
1.将对应数据库的驱动类放到tomcat的lib目录西安
2.重新启动tomcat服务器,让配置生效
在web应用程序的web.xml中设置数据源参考,如下:
在<web-app></web-app>节点中加入下面内容
<resource-ref>
<description>mysql数据库连接池</description> <!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 --> <res-ref-name>jdbc/mysqlds</res-ref-name> <!-- 资源类型 --> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
查看全部 -
web.xml配置数据库
查看全部 -
1.修改内存的目的
日常开发中,开发项目比较大的时候依赖的jar包比较多,并且在应用服务器启动的时候,会将项目引用的所有的类依次全部加载到内存当中,java的逻辑内存模式分为
堆内存(存储类的实例,数组、引用数据类型也就是用new生成的对象)、
栈内存(存储局部变量比如方法参数)、
静态内存区(持久区,该区内存不会被gc回收,存常量、静态变量、类的源数据:方法、属性什么的)
2.在开发当中经常遇到的内存溢出的异常
OutOfMemoryErroe:Java heap space异常------>堆内存满了
JVM中堆内存的大小默认使用的最小内存是我们物理内存的1/64,最大的使用我们物理内存的1/4,我们通过调整JVM中的初始内存和最大内存来改变我们使用内存的限制
OutOfMemoryError:PermGen space异常-------->静态内存区满了
通常是因为加载的类太多导致的,jdk8以下的需要修改两个参数限制静态区最小和最大内存范围,,jdk8改变了内存模型,将类定义存放到了源数据空间,而源数据空间与堆内存共享的是同一块内存区域,所以在jdk8版本以后就不会再出现PermGen space异常了。
StackOverflowError异常---------->栈内存溢出
通常是由于死循环或无线递归导致的
3.配置内存参数
网上有两种方式,一种是在start.bat,一种是在catalina.bat中
bin/catalina编辑:配到第2行/192行都行
JAVA_OPTS=“-server -Xms512m -Xmx1024m
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m ”
说明:server:是指虚拟机的运行模式,配置为server时,在使用多个CPU时,性能可以得到更好的发挥
-Xms:java heap初始大小 ,默认为物理内存的1/64,最大不要超过物理内存的80%,也叫堆内存
-Xmx:java heap的最大值,建议设置为物理内存的一半,不要超过实际的物理内存
MetaspaceSize:初始源空间的值,默认21m,
MaxMetaspaceSize:最大源空间的值,默认无上限
虚拟机的堆大小决定了虚拟机花费在数据垃圾上的时间和频率,调整虚拟机的堆大小目的是最小化垃圾回收的时间,一般用物理内存的80%作为堆内存的大小
查看全部
举报