收拾好心情,装备上tomcat,搭乘nginx,出发之一: Tomcat

原创 2016年06月15日 14:38:47

        初创公司,为了节约成本,以及对于今后发展之路的不确定,通常都会选购云服务来部署和开发项目。腾讯和阿里都有自己的云服务。提供包括云主机、数据库、redis、图片视频、cdn、短信等等。有的时候,不变的是技术,变的是业务,以及日渐积累的思维方式。

        当老板自信满满的带着idea,带着愿景,怀揣着一打打的现金,意气风发的讲述着自己的牛逼往事,自己那点创业的冲动被诱导出来。人生便走入了一段不同。

        项目立项,从技术角度讲,除了IDE和语言,nginx和tomcat是可以抛开具体业务去搞的,有一定技术和运维要求的通用功能。 所以在此对这块进行详述。

      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        首先记录如何配置与配置Tomcat

        可以说tomcat就是我的大学同学。从那时一起相识,从未离开过。甚至比最亲的大学同学都亲。然而线上环境的庄严,使得我们对tomcat并不会局限与简单的启动、配置8080端口。

        入正题。 tomcat配置需要注意的有如下几个方面。

        1. 前戏

        a. 为了安全,我们要的安装配置不要再root下直接操作。建立一个新用户

        [root@VM_140_6_centos ~]# useradd -g root -d /home/solar solar               (删除用户userdel solar  删除用户组 groupdel solar   查看用户组 groups solar)
        [root@VM_140_6_centos ~]# passwd solar         输入密码。并记住。
        [root@VM_140_6_centos ~]# vim /etc/sudoers
        solar ALL=(ALL) ALL
        强制保存退出 wq!

        b. 安装JDK
        [solar@VM_140_6_centos ~]$ cd /data/
        [solar@VM_140_6_centos data]$ sudo mkdir soft
        [solar@VM_140_6_centos data]$ sudo chown solar soft
        [solar@VM_140_6_centos data]$ cd soft/
        [solar@VM_140_6_centos data]$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.rpm 
        [solar@VM_140_6_centos data]$ sudo rpm -ivh jdk-8u60-linux-x64.rpm
        [solar@VM_140_6_centos data]$ java -version

        2. 安装与配置自启动服务

        a. 下载安装很简单。 

        [solar@VM_140_6_centos soft]$cd /data/soft     
        [solar@VM_140_6_centos soft]$ wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz
        [solar@VM_140_6_centos soft]$ tar -zxvf apache-tomcat-7.0.65.tar.gz 
        [solar@VM_140_6_centos soft]$ mv apache-tomcat-7.0.65 tomcat
        [solar@VM_140_6_centos tomcat]$ vim conf/server.xml

        b. tomcat 开机自启动
        [solar@VM_140_6_centos tomcat]$ cd bin/
        [solar@VM_140_6_centos bin]$ tar zxvf commons-daemon-native.tar.gz
        [solar@VM_140_6_centos bin]$ cd commons-daemon-1.0.15-native-src/unix/
        [solar@VM_140_6_centos unix]$ ./configure --with-java=/usr/java/jdk1.8.0_60
        sudo yum -y install gcc
        [solar@VM_140_6_centos unix]$ make
        [solar@VM_140_6_centos unix]$ cp jsvc ../../
        [solar@VM_140_6_centos unix]$ cd ..
        [solar@VM_140_6_centos commons-daemon-1.0.15-native-src]$ cd ..
        [solar@VM_140_6_centos bin]$ vim daemon.sh 

        [solar@VM_140_6_centos bin]$ sudo cp daemon.sh /etc/rc.d/init.d/tomcatd
        [solar@VM_140_6_centos bin]$ cd /etc/rc.d/init.d/
        [solar@VM_140_6_centos bin]$ sudo chmod +x tomcatd
        [solar@VM_140_6_centos init.d]$ sudo chkconfig --add tomcatd
        [solar@VM_140_6_centos init.d]$ sudo chkconfig --level 2345 tomcatd on
        [solar@VM_140_6_centos logs]$ service tomcatd start
        日志中文乱码 sudo vim /etc/profile 添加这两个  重启服务器
        export LC_ALL="zh_CN.UTF-8"
        export LANG="zh_CN.UTF-8" 

        3. tomcat日志分隔

        catalina-daemon.out日志文件不会自动分隔,想了下,用linux的crontab来做吧

        [root@VM_140_6_centos tomcat]# cd /etc/cron.daily/
        [root@VM_140_6_centos tomcat]# vim tomcat-log.cron
        #!/bin/bash
        thedate=`date --rfc-3339=date`
        predate=`date +%Y-%m-%d --date="-7 day"`

        rmfile="/data/soft/tomcat/logs/catalina-daemon.${predate}.out"
        outfile="/data/soft/tomcat/logs/catalina-daemon.out"
        if [ -f ${rmfile} ];then
            rm -f ${rmfile}
        fi

        if [ -f ${outfile} ];then
           cp ${outfile} /data/soft//tomcat/logs/catalina-daemon.${thedate}.out
           echo "" > ${outfile}
        fi

        exit 0
        [root@VM_140_6_centos tomcat]# chmod 700 tomcat-log.cron

        4. tomcat server.xml配置

        <!-- UTF-8编码 --> 
        <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               acceptCount="3000" redirectPort="8443" 
               URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
        <!-- 项目路径 -->
        <Host name="localhost" appBase="/data/apps" unpackWARs="true" autoDeploy="true">
        <!-- 只允许内网ip10开头的主机(客户端)访问,禁止外网直接访问 -->
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="10.*.*.*" deny=""/>
        <!-- Access日志格式 -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />
        </Host>

        5. JAVA_OPTS参数配置

        用来配置JVM相关的运行参数的变量。添加或修改bin/catalina.sh中的JAVA_OPTS属性值

        JAVA_OPTS="-server -Dfile.encoding=UTF-8 -Xms=512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -verbose:gc -Xloggc:${CATALINA_HOME}/logs/gc.log`date +%Y-%m-%d-%H-%M` -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -noclassgc"

        参数说明:
       -server:一定要作为第一个参数,在多个CPU时性能佳
       -Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。JVM启动时默认设置为物理内存的1/64
       -Xmx:java heap最大值,使用的最大内存。JVM启动时默认设置为物理内存的1/4
       -XX:PermSize:设定内存的永久保存区域
       -XX:MaxPermSize:设定最大内存的永久保存区域
       -XX:MaxNewSize: JVM堆区域新生代内存的最大可分配大小(PermSize不属于堆区)
       +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
       -Xss:每个线程的Stack大小
       -verbose:gc 现实垃圾收集信息
       -Xloggc:gc.log 指定垃圾收集日志文件
       -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
       -XX:+UseParNewGC :缩短minor收集的时间
       -XX:+UseConcMarkSweepGC :缩短major收集的时间
       提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

        6. 添加tomcat用户 主要给manager用。比如http://localhost:8080/manager/status查看内存使用情况,还有jenkins远程发布tomcat

        [solar@VM_140_6_centos tomcat]# vim conf/tomcat-users.xml 
        <role rolename="manager"/>
        <role rolename="manager-script"/>
        <role rolename="manager-gui"/>
        <role rolename="manager-jmx"/>
        <role rolename="manager-status"/>
        <user username="tomson" password="tomson" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>     

收拾好心情,装备上tomcat,搭乘nginx,出发之二: Nginx

1. linux的安装
  • qq_30121245
  • qq_30121245
  • 2017年03月23日 16:53
  • 89

整理行李,收拾心情

整理行李,收拾心情能带走的都带走带不走的都留下整理不好的丢掉心情该收拾一下每天都是新的一天每天都是重新开始~ ...
  • OpenHero
  • OpenHero
  • 2007年06月26日 15:25
  • 1929

收拾心情,重新上路!

博客开通了N久了,一直没有写过文章,现在是越来越懒了呵呵…… 2010年的春天在绵绵春雨中渐行渐远,心情却一直还沉迷于过往迷蒙中,在新的公司一直浑浑噩噩,怨天尤人,都快成祥林嫂了。 再回头,江水已逝,...
  • lmhit
  • lmhit
  • 2010年04月21日 19:37
  • 643

收拾心情,准备出发

“有谁来读孤独感,散不尽留恋,生死注定烟消云散......”。一听这类剑侠风格的歌曲,总是被她伤感的曲风所感染,心里有一种说不出的感觉,有点想哭,但又很激动。上一次有这种感觉,还是在刚毕业的第一年。刚...
  • y074085024
  • y074085024
  • 2015年07月27日 22:05
  • 202

为什么采用 nginx+tomcat 或者 apache+tomcat方式部署

nginx和apache两者的作用相同,都是常见webserver服务器,相互独立也可相符搭配,都是用于浏览器用户过来的http请求,然后把请求结果反应给浏览器。 apache是出现比较早的web ...
  • hbdys
  • hbdys
  • 2013年09月23日 18:18
  • 1492

nginx与tomcat比较

nginx和tomcat的区别 web上的server都叫web server,但是大家分工也有不同的。 nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面...
  • huaweitman
  • huaweitman
  • 2017年03月24日 12:05
  • 1446

Ubuntu nginx tomcat 相关配置

tomcat服务 项目目录:/usr/local/tomcat(01,02,03…) 配置: 关于自动启动待续 nginx 服务(静态页面) 项目目录:/usr/share/ngi...
  • xugangwen
  • xugangwen
  • 2014年12月10日 16:31
  • 2153

https配置从tomcat迁移到Nginx

一、背景介绍最近有个APP项目,为了避免数据网络传输过程中明文传输,需要采用https协议进行APP端和服务端的数据交互。没有去专门第三方的证书签发机构申请证书,而是自己通过jdk提供的keytool...
  • clj198606061111
  • clj198606061111
  • 2016年12月10日 09:44
  • 1216

简单的Nginx+Squid+Tomcat架构

配置细节: 1. #Ninx Conf user  nobody nobody; worker_processes 10; error_log  /usr/local/ngin...
  • madun
  • madun
  • 2014年01月22日 22:53
  • 2007

Nginx+tomcat很详细,运维实际应用(发散思维 nginx+apache nginx +weblogic nginx+websheard 等都可以)

Nginx+tomcat很详细,运维实际应用(发散思维 nginx+apache nginx +weblogic nginx+websheard 等都可以)...
  • tony168hongweigan
  • tony168hongweigan
  • 2016年09月03日 22:54
  • 1816
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:收拾好心情,装备上tomcat,搭乘nginx,出发之一: Tomcat
举报原因:
原因补充:

(最多只允许输入30个字)