编辑安装目录下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 启动的时候加载这个虚拟站点的程序。造成你以为没有删除这个虚拟站点。
相关推荐
- 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL证书。 2. **创建Keystore**: - 使用`keytool`命令行工具(位于Java SDK的bin目录下)创建一个新的Keystore文件,存放私钥和公钥。 - ...
2.3.1 更改`server.xml`:修改Tomcat配置文件`conf/server.xml`,调整连接器参数如`maxThreads`, `minSpareThreads`等,以适应预期的并发用户量。 2.3.2 配置默认应用:通过修改`webapps`目录下的默认应用,或者配置...
本篇主要介绍Tomcat的核心组件认知、`server.xml`配置详解以及自动部署脚本的编写,帮助读者理解和优化生产环境中的Tomcat配置。 ### 一、Tomcat各组件认知 1. **Tomcat架构说明** Tomcat基于组件化设计,由一...
### Tomcat配置JavaScript ArcGIS API详解 #### 一、引言 随着Web GIS技术的发展,越来越多的应用场景需要在Web端实现地图数据的展示与交互。Esri提供的ArcGIS JavaScript API便成为了开发人员进行地理信息系统...
其中,Tomcat 作为 Java Web 应用的标准容器之一,被广泛应用于各种生产环境之中。本文将详细介绍如何在 Linux 环境下配置两个 Tomcat 实例,从 JDK 的安装到 Tomcat 的安装及配置全过程。 #### 二、准备工作 1. *...
### Tomcat配置MySQL连接池详解 #### 一、前言 在Java Web开发中,Tomcat作为一款广泛使用的轻量级应用服务器,被大量应用于Web应用程序的部署与运行环境中。而数据库连接池作为提高数据库访问效率的重要手段,在...
### jconsole-tomcat配置详解 #### 一、引言 在现代软件开发与运维过程中,性能监控与故障排查是确保应用稳定运行的关键环节之一。作为一款广泛使用的Java应用服务器,Tomcat同样需要进行细致的监控与管理。而...
默认的Tomcat配置往往不适合生产环境的高并发需求,因此需要进行相应的调整。 ##### 1. 修改启动时内存参数及指定JVM时区 - **内存参数**:在Windows环境下,通过编辑`catalina.bat`文件,在最前面添加如下内容: ...
### Ubuntu下安装配置Tomcat #### 一、前言与环境准备 在Ubuntu系统中部署Java Web应用时,经常需要用到Apache Tomcat服务器。本文将详细介绍如何在Ubuntu 10.10-amd64版系统上安装并配置Tomcat。通过本教程,你将...
为了生产环境的安全,建议修改默认的管理员账号 `manager-gui` 和 `admin-gui` 的密码,以及在 `conf/tomcat-users.xml` 中添加新的角色和用户。 **9. 自启动Tomcat** 为了让Tomcat在系统启动时自动运行,创建一个...
对于生产环境,还需考虑安全性配置,如设置用户权限、SSL证书、防火墙规则等。这可以通过修改`conf/tomcat-users.xml`、`conf/server.xml`等文件实现。 10. **优化与性能调整**: 根据应用的负载情况,可能需要...
但请注意,这只是基本的安装过程,实际部署可能还需要配置JDK、设置用户权限、调整Tomcat配置文件等。在开发和生产环境中,这些步骤是至关重要的。 在源码和工具相关的领域,理解如何正确安装和管理Tomcat对于...
- 对于生产环境,应考虑更详细的配置,如调整连接器的线程池大小、禁用不必要的服务、优化日志记录策略等。 #### 环境变量的重要性 - 环境变量如`JAVA_HOME`和`CLASSPATH`不仅影响JDK和Tomcat的正常运行,还可能...
在Linux系统中,尤其是对于开发环境的搭建,CentOS7是一个常见的选择。本文将详细介绍如何在CentOS7上安装JDK8、MySQL8和Tomcat9,并配置相应...通过熟悉这些基本操作,你可以更轻松地管理和维护自己的开发或生产环境。
- 在生产环境中部署时,建议对安全性进行加强,比如限制IP地址访问等措施。 #### 五、总结 通过上述步骤,在Windows Server 2008 R2 64位系统下成功实现了IIS与Tomcat的联动配置。这种配置方式不仅提高了Web应用的...
标题 "Tomcat配置虚拟路径(Windows)" 涉及到的是在Windows环境下对Apache Tomcat服务器进行虚拟主机配置的方法。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源应用服务器,它允许开发者部署多个Web应用程序...
总之,通过在Tomcat启动脚本中直接设置环境变量,可以有效地解决在没有系统级JAVA_HOME配置下运行Tomcat的问题。这种做法不仅简化了部署流程,还提高了系统的健壮性和适应性。对于任何希望独立控制Tomcat及其运行...