tomcat/Resin java服务器

主要用来解析jsp语言,发布jsp代码,跟php平级

jsp(Java server page)

·安装tomcat之前要安装jdk

·下载jdk,解压,移到usr下

·修改环境变量

vi /etc/profile

export JAVA_HOME=/usr/jdk1.8.0_111

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

source    /etc/profile            ; java -version

·下载apache-tomcat,解压,移到usr/local目录下,改名成tomcat

/usr/local/tomcat/bin/startup.sh

然后通过浏览器访问8080端口

发布目录在webapps的ROOT下

自定义发布目录,在server.xml配置文件末尾 </Host>前加入如下行:

<Context path="/" docBase="/data/webapps/www"  reloadable="true"/>

前面path是url,后面是对应的目录,可以写多个,构成虚拟主机

true表示有更新时自动重启,一般写false,万一在数据交互就丢失了,想自定义生效,要把webapps下的默认内容删掉

日志在logs下的catalina.out    

作业:一个机器上两个网站域名,内容一样,每个网站3个tomcat,用一个nginx均衡

所以要在nginx上配置两个upstream

一个nginx负载多个tomcat的方法,在一台机器上部署多台tomcat,tomcat写成网址名,改变端口,用nginx均衡

<Connector port="8080"这行是换端口的

布置多台tomcat,只需要多复制几个,命名成不同目录123,发布目录要在一个下面,写成123好分

sed 's/8005/8006/g;s/8009/8010/g;s/8080/8081/g' /usr/local/tomcat/conf/server.xml

·nginx配置

·upstream tomcat_web{

            server 192.168.1.25:8080;

            server 192.168.1.25:8081;

            server 192.168.1.25:8082;

}

·下面server里

root注释掉,写上proxy_pass http://tomcat_web;

index加上 index.jsp

然后重启测试,可以看到均衡了三个页面

Resin比较稳定,tomcat隔三差五要重启下

有免费版和收费版

tomcat优化

linux内核优化

服务器资源配置优化,硬件,服务器怎么分配,是否做raid。网卡绑定,流量聚合,4个千兆变4千兆带宽,大型互联网公司几十G带宽,中小公司100-200M,小公司20M,UP和PV ,1:5的关系,可以说UV是3万,PV是30万,中小公司统计PV,大公司统计独立IP,nginx日志统计,网站访问数可以用统计代码

server.xml优化配置

<Connector port="8080"  

        protocol="org.apache.coyote.http11.Http11NioProtocol" 

           connectionTimeout="20000"  超时时间毫秒

           redirectPort="8443"   重定向端口

           maxThreads="5000"   每秒最大线程,最大并发

           minSpareThreads="20"  最小空闲链接

           acceptCount="10000" 最大连接数,后面的会等待

           disableUploadTimeout="true" 禁止上传超时

           enableLookups="false"   这个就是DNS查找,ture/false

           URIEncoding="UTF-8" />

一个进程多个线程模式

/bin/catalina.sh优化配置,要把这个配置放在前面,因为已经文档里已有这个配置

CATALINA_OPTS="$CATALINA_OPTS -Xms512M -Xmx512M -Xmn100M -XX:SurvivorRatio=4 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=82 -DLOCALE=UTF-16LE  -DRAMDISK=/ -DUSE_RAM_DISK=ture -DRAM_DISK=true"

-Xms java虚拟机最小内存 -Xmx java虚拟机最大内存 -Xmn 一般等于xmx的1/3 1/4。给系统留2G内存

tomcat缺点,内存容易满,运行太久里面有很多旧数据没有释放内存,会报错out of memory、运维能解决的就是重启。可以优化程序,java内核。

优化完pkill,重启,报错的话看/var/log/message

jvmconsole,在上面的配置后面加,参考吴老师博客 

nginx+tomcat动静分离

server

  {

    listen       80;

    server_name  发布的域名;

    index index.html index.htm;

    root  /data/www/发布目录;

    location /

    {

         proxy_next_upstream http_502 http_504 error timeout invalid_header;

         proxy_set_header  Host  $host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  proxy_pass http://上面的动态页面upstream;

         expires      3d;

    }

#动态页面交给http://上面的upstream,也即我们之前在nginx.conf定义的upstream tdt_wugk 均衡

 location ~ .*\.(php|jsp|cgi)?$

    {

         proxy_set_header Host  $host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

         proxy_pass http://tdt_wugk;

    }

#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$

    {

    root /data/www/wugk;

真实环境网站程序包只有一个,需要把这个程序包在nginx前端放一份,同时需要在Tomcat、Resin后端也放置一份,如果服务器涉及数量很多,那每台服务器都需要更新,可以使用批量更新方法。

nginx均衡tomcat 

tomcat端口要换掉