一、修改配置文件

tomcat配置文件路径/tomcat/bin/server.xml

# shutdown指定终止Tomcat服务器运行时,发给Tomcat 服务器的shutdown监听端口的字符串.该属性必须设置
<Server port="8005" shutdown="SHUTDOWN"> <!-- Security listener. Documentation at /docs/confi g/listeners.html
<Listener className="org.apache.catalina.security.S ecurityListener" /> <!--APR library loader. Documentation at /docs/apr. html -->
<Listener className="org.apache.catalina.core.AprL ifecycleListener" SSLEngine="on" />
<!-- Prevent memory leaks due to use of particular j ava/javax APIs-->
<Listener className="org.apache.catalina.core.JreM emoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.G lobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.Thr eadLocalLeakPreventionListener" />

service服务配置

<Connector port="8221" protocol="HTTP/1.1"      #po      rt 端口配置
connectionTimeout="20000" #connectionTimeou t指定超时的时间数(以毫秒为单位)
maxThreads="3000" #tomcat起动的最大线程 数,即同时处理的任务个数,默认值为200
minSpareThreads="100"      #初始化时创建的 线程数
acceptCount="800" #指定当所有可以使用的处理请求 的线程数都被使用时,可以放到处理队列中的请求数,超 过这个数的请求将不予处理
maxKeepAliveRequests="200"  #表示该连接最大支 持的请求数。超过该请求数的连接也将被关闭(此时就会 返回一个Connection: close头给客户端)。
URIEncoding="UTF-8"     #指定字符集
redirectPort="8443" /> #指定服务器正在处理http请求 时收到了一个SSL传输请求后重定向的端口号

 三、设置Tomcat 内存限制,优化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时性能佳 -Xmx:初始堆内存heap最大值,使用的最大内存 -XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 这使得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
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间

例子:我公司服务器Tomcat内存设置如下

服务器硬件:2核8G

tomcat实例:3个tomcat实例

四、Tomcat获取用户IP地址

在tomcat配置文件/conf/server.xml下配置

<Valve className="org.apache.catalina.valves.Access LogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t %r %s %b" />
前面有负载均衡的时候,获取真实IP可以使用下面的配置
<Valve className="org.apache.catalina.valves.Access LogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%{X-Forwarded-For}i %h %l %u %t %r %s % b" />

五、tomcat启动停止脚本

#!/bin/bash
# chkconfig:
# description: Tomcat is a Java Servlet Container TOMCAT_HOME=/usr/local/tomcat TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`
if [ -z $TOMCAT_PID ];then else
echo "$0 is running"
fi
}
stop () {
TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`
if [ -z $TOMCAT_PID ];then else kill - "$TOMCAT_PID" && echo "PID 16
fi
}
status () {
TOMCAT_PID=`ps -ef |grep "$TOMCAT_HOME" |grep -v "grep" |awk '{print $2}'`
if [ -z $TOMCAT_PID ];then else fi
}
case $ in
start)
start
#tail -f $TOMCAT_HOME/logs/catalina.out
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
#tail -f $TOMCAT_HOME/logs/catalina.out
;;
*)
echo "Usage:$0 {start|stop|status|restart}."
;;
esac

提示: 本脚本不提供log,还需要在脚本后面加上&& tailf logs/catalina.out

Jar包介绍

jar包种类介绍 http://blog.csdn.net/helloxiaoliang/article/details/39030909

很多时候开发会给我们一个jar包,让我们进行运行.启动命令如下:

jar 包启动

[root@tomcat univ-public]# nohup java -jar jar      包名称.jar > user.out &

Tomcat的配置,设置内存,获取用户IP的更多相关文章

  1. Haproxy配置支持https获取用户IP地址

    global log 127.0.0.1 local0 chroot /var/lib/haproxy #chroot运行路径 pidfile /var/run/haproxy.pid #haprox ...

  2. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  3. 获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR)

    分析过程 这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. function getIP() { if (isset($_ ...

  4. CDN 环境下获取用户IP方法

    CDN 环境下获取用户IP方法 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得 proxy_set_header X-Real-IP $remote ...

  5. go 通过nginx代理后获取用户ip

    go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) { fmt.Println(r.Re ...

  6. Flask框架获取用户IP地址的方法

    本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最 ...

  7. C# 获取用户IP地址(转载)

    [ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...

  8. 【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】

    用jQuery来判断浏览器的类型,主要是使用$.browser这个工具类,使用方法: $.browser.['浏览器关键字'] //谷歌浏览器.360浏览器等其他一些浏览器,没有专门的判断 funct ...

  9. PHP:获取用户IP

    文章来源:http://www.cnblogs.com/hello-tl/p/7685263.html //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1 ...

随机推荐

  1. ubuntu重新设置登陆界面|切换gdm kdm lightdm

    方法: $ sudo dpkg-reconfigure gdm 然后会出一个让你进行选择的提示,根据需要切换即可

  2. 转!mysql备份与还原数据库

    备份数据库:1) mysqldump -uroot -p db_name > 20181018_preprod_bak.sql2) 输入数据库密码 还原数据库:1. 系统命令行:mysqladm ...

  3. MPI Maelstrom---poj1502(最短路模板)

    题目链接:http://poj.org/problem?id=1502 题意:求从处理器1到其它处理器所需的最少时间是多少: 输入是下三角,如果是x表示A[i][j]不能直接联系: #include ...

  4. 吉哥系列故事——完美队形II---hdu4513(最长回文子串manacher)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4513 题意比最长回文串就多了一个前面的人要比后面的人低这个条件,所以在p[i]++的时候判断一下s[i ...

  5. redis之django-redis

    自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResp ...

  6. pytorch中的cat、stack、tranpose、permute、unsqeeze

    Cat 对数据沿着某一维度进行拼接.cat后数据的总维数不变. 比如下面代码对两个2维tensor(分别为2*3,1*3)进行拼接,拼接完后变为3*3还是2维的tensor. import torch ...

  7. spring中的缓存--Caching

    1.spring从3.1开始支持缓存功能.spring 自带的缓存机制它只在方法上起作用,对于你使用其他持久化层的框架来讲,是没有影响的,相对来讲这种缓存方式还是不错的选择. 2.提供缓存的接口:or ...

  8. Redis vs Mongo vs mysql

    Redis 和 Mongo 都属于 No-SQL类型的数据库,他们的区别,联系是什么呢?看了一些文章,特总结如下. Redis 最大的特点是,快!为什么快,因为他将大量的东西存储在了memory中.但 ...

  9. VoIP应用系统大盘点

    一.VoIP拓扑 PBX是程控交换机,程控交换机有实体交换机和软件模拟的交换机. 软件模拟的交换机,即交换机服务器,常用开源的sip服务器有asterisk,freepbx, opensip等,商用的 ...

  10. windows平台tensorboard的配置及使用

    由于官网和其他教程里面都是以Linux为平台演示tensorboard使用的,而在Windows上与Linux上会有一些差别,因此我将学习的过程记录下来与大家分享(基于tensorflow1.2.1版 ...