`

生产环境下的Tomcat配置

 
阅读更多

2.2 Tomcat配置

Tomcat要根据实际的生产环境进行优化,主要有以下几个需要修改的地方

2.2.1内存

修改tomcat安装目录bin/catalina.sh,添加export JAVA_OPTS='-Xms1024m-Xmx1024m',前面是初始化内存大小,后面是可以使用最大内存

2.2.2线程及连接

编辑安装目录下conf/server.xml

<Connector  port="8080"

  maxThreads="500"

 minSpareThreads="25"

maxSpareThreads="75"

acceptCount="100"

/>

配置开启最大线程为500,25个空线程等待,75个最大空线程等待及连接数大于maxThreads时最多允许100个连接等待。以上根据实际项目配置,也可以配置线程池。

连接参数的配置也是修改connector参数,主要有:

connectionTimeout 网络连接超时,单位毫秒,设置为0表示永不超时

keepAliveTimeout 长连接最大保持时间,单位毫秒

MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数,1表示禁用,-1表示不限制个数,默认100个,一般设置在100~200之间

2.2.3多虚拟主机及多实例

多虚拟主机是在一个实例中的server.xml中配置多个虚拟目录以指向相同或不同项目,多实例是安装多个Tomcat实例,修改为不同端口,启动不同进程实现不同项目或者同项目的访问,与虚拟主机不同的是多实例可以实现简单的单台主机上的负载均衡。具体配置这里不介绍了。

2.2.4集群

Tomcat集群是在多台主机上实现负载均衡的技术,由于APP目前只有一台主机,集群到了第二阶段才能考虑。

2.3 Mysql

Mysql的表结构是开发人员根据程序需要来设计,这个要根据项目区分。

3、部署及问题

最后将项目的静态文件及动态文件分别部署到Nginx和Tomcat上,做到动静分离。Tomcat上没有必要放置多余的静态文件,但要配置好和后台数据库连接的jdbc,如:

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://192.168.1.1:3306/kingdom?characterEncoding=utf-8

jdbc.username=root

jdbc.password=root

别忘了还有个连接DB的驱动jar包。这样一个Nginx+Tomcat+Mysql架构的项目就部署完毕。接下来说说遇到的问题。

问题1:连接不到后台数据库,但数据库本身没有问题,服务开启并且也可以登录。在排除了防火墙之类的配置后,用其他主机远程登录提示Accessdenied for user 'root'@'ip' (using password:YES),mysql默认禁止远程连接,解决办法:

mysql -uroot -p

mysql>GRANT all privileges ON *.* toroot@'%' IDENTIFIED BY "root" with grant option;

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by"用户密码";

权限分为select,update,insert,delete或者直接all

数据库名.表名可以*.*表示所有

登录主机'%'表示所有

用户密码不是本机真实密码,为本机给远程登陆用户设的密码

之后FLUSH PRIVILEGES;即可

问题2:访问Nginx上的应用连接不到数据库,但直接访问Tomcat正常。将Nginx指向其他APP访问正常,说明Nginx配置没有问题,连接不到数据库是因为Nginx连接不到Tomcat,而Tomcat连接着数据库,Nginx只能访问自己本地的项目。从以上判断应该是Tomcat上项目的权限问题。找到故障点后着手解决,发现Tomcat上项目主目录下没有crossdomain.xml文件,这是Tomcat的跨域策略文件,配置后问题解决。

问题3:一切就绪后使用Loadrunner进行压力测试,Nginx日志报错accept() failed (24: Toomany open files),这是由于服务器开的文件描述符太小造成。ulimit–n只能改变当前shell的设定,要永久改变有以下三步:

(1.) /etc/pam.d/login添加

session???required????/lib/security/pam_limits.so

(2.)?/etc/security/limits.conf添加

www???????????-??????nofile?????????1006154

www 是一个用户,如果是想所有用户生效的话换成 * ,设置的数值与硬件配置有关,别设置太大

(3.) ?修改/etc/rc.local添加

echo 8061540 >/proc/sys/fs/file-max

第一阶段的生产环境搭建完毕,还有很多需要测试和优化的地方,这期间Google也帮了大忙,第二阶段的扩展也会在这个基础上展开,记录与总结也会继续

 

 

--

    Tomcat 5 在生产环境中为了避免被攻击,需要注意删除以下目录的文件或者是要修改某些文件的配置。

         一、  找到%Tomcat_Home%\conf目录下的web.xml文件,修改如下所示的参数设置,默认是true,修改为false值,表示是客户端浏览的时候不做目录文件的列表,例如:访问如下地址http://127.0.0.1/test/  如果这个参数设置为true的话,就会把test目录下的所有jsp文件都列出来,这样给攻击者一个清楚的文件列表,造成极大的危害。

     <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>

二、在%Tomcat_Home%\conf\Catalina\localhost目录下,是当前tomcat服务器配置的在运行的站点配置文件,其中balancer.xml文件是配置tomcat均衡的一个站点,这个不需要删除;但是admin.xml与mannager.xml文件是默认的管理站点,可以删除,以免攻击者从中得到有用的信息;ROOT.xml文件是tomcat默认站点的配置文件。另外要注意的一点是如果要删除一个虚拟站点的话,我们就需要把对应的配置文件从这个目录中删除,例如:要删除虚拟站点test,那么就要把这个目录下的test.xml文件删除,否则,就算是在%Tomcat_Home%\conf\目录下的server.xml配置文件中删除了这个虚拟站点,也会在tomcat 启动的时候加载这个虚拟站点的程序。造成你以为没有删除这个虚拟站点。

 

分享到:
评论

相关推荐

    Tomcat配置HTTPS证书认证

    - 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL证书。 2. **创建Keystore**: - 使用`keytool`命令行工具(位于Java SDK的bin目录下)创建一个新的Keystore文件,存放私钥和公钥。 - ...

    CentOS7 环境下Tomcat和Nginx 安全配置操作手册

    2.3.1 更改`server.xml`:修改Tomcat配置文件`conf/server.xml`,调整连接器参数如`maxThreads`, `minSpareThreads`等,以适应预期的并发用户量。 2.3.2 配置默认应用:通过修改`webapps`目录下的默认应用,或者配置...

    Tomcat生产环境配置与应用 (1)1

    本篇主要介绍Tomcat的核心组件认知、`server.xml`配置详解以及自动部署脚本的编写,帮助读者理解和优化生产环境中的Tomcat配置。 ### 一、Tomcat各组件认知 1. **Tomcat架构说明** Tomcat基于组件化设计,由一...

    tomcat 配置 javascript arcgis api

    ### Tomcat配置JavaScript ArcGIS API详解 #### 一、引言 随着Web GIS技术的发展,越来越多的应用场景需要在Web端实现地图数据的展示与交互。Esri提供的ArcGIS JavaScript API便成为了开发人员进行地理信息系统...

    linux下双tomcat配置

    其中,Tomcat 作为 Java Web 应用的标准容器之一,被广泛应用于各种生产环境之中。本文将详细介绍如何在 Linux 环境下配置两个 Tomcat 实例,从 JDK 的安装到 Tomcat 的安装及配置全过程。 #### 二、准备工作 1. *...

    tomcat配置mysql连接池

    ### Tomcat配置MySQL连接池详解 #### 一、前言 在Java Web开发中,Tomcat作为一款广泛使用的轻量级应用服务器,被大量应用于Web应用程序的部署与运行环境中。而数据库连接池作为提高数据库访问效率的重要手段,在...

    jconsole-tomcat配置

    ### jconsole-tomcat配置详解 #### 一、引言 在现代软件开发与运维过程中,性能监控与故障排查是确保应用稳定运行的关键环节之一。作为一款广泛使用的Java应用服务器,Tomcat同样需要进行细致的监控与管理。而...

    Tomcat配置详解

    默认的Tomcat配置往往不适合生产环境的高并发需求,因此需要进行相应的调整。 ##### 1. 修改启动时内存参数及指定JVM时区 - **内存参数**:在Windows环境下,通过编辑`catalina.bat`文件,在最前面添加如下内容: ...

    ubuntu 下安装配置tomcat

    ### Ubuntu下安装配置Tomcat #### 一、前言与环境准备 在Ubuntu系统中部署Java Web应用时,经常需要用到Apache Tomcat服务器。本文将详细介绍如何在Ubuntu 10.10-amd64版系统上安装并配置Tomcat。通过本教程,你将...

    centos7 下 Tomcat8.5的安装和配置.附带Tomcat安装包

    为了生产环境的安全,建议修改默认的管理员账号 `manager-gui` 和 `admin-gui` 的密码,以及在 `conf/tomcat-users.xml` 中添加新的角色和用户。 **9. 自启动Tomcat** 为了让Tomcat在系统启动时自动运行,创建一个...

    tomcat手动配置部署

    对于生产环境,还需考虑安全性配置,如设置用户权限、SSL证书、防火墙规则等。这可以通过修改`conf/tomcat-users.xml`、`conf/server.xml`等文件实现。 10. **优化与性能调整**: 根据应用的负载情况,可能需要...

    Linux 下 Tomcat安装(下载,解压,移动,配置TOMCAT_HOME)

    但请注意,这只是基本的安装过程,实际部署可能还需要配置JDK、设置用户权限、调整Tomcat配置文件等。在开发和生产环境中,这些步骤是至关重要的。 在源码和工具相关的领域,理解如何正确安装和管理Tomcat对于...

    java环境变量配置和tomcat配置

    - 对于生产环境,应考虑更详细的配置,如调整连接器的线程池大小、禁用不必要的服务、优化日志记录策略等。 #### 环境变量的重要性 - 环境变量如`JAVA_HOME`和`CLASSPATH`不仅影响JDK和Tomcat的正常运行,还可能...

    CentOS7 安装JDK8 + MySQL8 + Tomcat9并配置环境变量.pdf

    在Linux系统中,尤其是对于开发环境的搭建,CentOS7是一个常见的选择。本文将详细介绍如何在CentOS7上安装JDK8、MySQL8和Tomcat9,并配置相应...通过熟悉这些基本操作,你可以更轻松地管理和维护自己的开发或生产环境。

    win2008 iis tomcat 配置

    - 在生产环境中部署时,建议对安全性进行加强,比如限制IP地址访问等措施。 #### 五、总结 通过上述步骤,在Windows Server 2008 R2 64位系统下成功实现了IIS与Tomcat的联动配置。这种配置方式不仅提高了Web应用的...

    tomcat配置虚拟路径(window)

    标题 "Tomcat配置虚拟路径(Windows)" 涉及到的是在Windows环境下对Apache Tomcat服务器进行虚拟主机配置的方法。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源应用服务器,它允许开发者部署多个Web应用程序...

    tomcat环境变量配置

    总之,通过在Tomcat启动脚本中直接设置环境变量,可以有效地解决在没有系统级JAVA_HOME配置下运行Tomcat的问题。这种做法不仅简化了部署流程,还提高了系统的健壮性和适应性。对于任何希望独立控制Tomcat及其运行...

Global site tag (gtag.js) - Google Analytics