当前位置: > CentOS > CentOS服务器 > 环境配置 >

centos7下systemd实现tomcat多实例

时间:2015-12-19 20:33来源:linux.it.net.cn 作者:IT

环境: CentOS 7 x86_64

1、安装jdk

1 rpm -ivh jdk-8u60-linux-x64.rpm
2、创建普通用户

12 getent group tomcat || groupadd -r tomcatgetent passwd tomcat || useradd -r -d /opt -s /bin/nologin tomcat
3、下载tomcat 7

123456789 cd /optwget http://mirrors.ustc.edu.cn/<a href="http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=apache" class="bdcs-inlinelink"target="_blank">apache</a>/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gztar zxvf apache-tomcat-7.0.64.tar.gzmv apache-tomcat-7.0.64 tomcat01chown -R tomcat:tomcat tomcat01  tar zxvf apache-tomcat-7.0.64.tar.gzmv apache-tomcat-7.0.64 tomcat02chown -R tomcat:tomcat tomcat02
两个实例同时监听8080端口必然会产生冲突,所以必须修改.

1234 sed -i 's/8080/8081/g' /opt/tomcat01/conf/server.xmlsed -i 's/8005/8001/g' /opt/tomcat01/conf/server.xmlsed -i 's/8080/8082/g' /opt/tomcat02/conf/server.xmlsed -i 's/8005/8002/g' /opt/tomcat02/conf/server.xml
AJP通常用不上,这里统一关闭

12 sed -i '/8009/d' /opt/tomcat01/conf/server.xmlsed -i '/8009/d' /opt/tomcat01/conf/server.xml
tomcat在Linux 下默认工作模式是bio,性能非常低,建议使用apr或者nio,

这里改为nio,即非阻塞IO,性能比较好。

12 sed -i.bak 's#HTTP/1.1#org.apache.coyote.http11.Http11NioProtocol#' /opt/tomcat01/conf/server.xmlsed -i.bak 's#HTTP/1.1#org.apache.coyote.http11.Http11NioProtocol#' /opt/tomcat02/conf/server.xml
3、创建启动文件

123456789101112131415 cd /usr/lib/systemd/systemcat >tomcat01.service <<EOF[Unit]Description=Apache Tomcat 7After=network.target[Service]Type=oneshotExecStart=/opt/tomcat01/bin/startup.shExecStop=/opt/tomcat01/bin/shutdown.shRemainAfterExit=yesUser=tomcatGroup=tomcat[<a href="http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=Install"class="bdcs-inlinelink" target="_blank">Install</a>]WantedBy=multi-user.targetEOF
tomcat02同理

1 sed 's/tomcat01/tomcat02/g' tomcat01.service > tomcat02.service
4、启动服务

1234 systemctl enable tomcat01systemctl enable tomcat02systemctl start tomcat01systemctl start tomcat02
5、查看进程

ps aux |grep tomcat

附上一份nginx反向代理tomcat的配置文件

proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=static:10m inactive=1h max_size=1g;



upstream tomcat {

        ip_hash ;

        #hash           $remote_addr consistent;

        server          127.0.0.1:8081 max_fails=1 fail_timeout=2s ;

        server          127.0.0.1:8082 max_fails=1 fail_timeout=2s ; ;

        keepalive       16;

}



server {

        listen          80;

        server_name     tomcat.example.com;



        charset         utf-8;

        access_log      /var/log/nginx/tomcat.access.log  main;

        root            /usr/share/nginx/html;

        index           index.html index.htm index.jsp;



        location / {

                proxy_pass              http://tomcat;

                proxy_redirect          off;

                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_cache_use_stale   error timeout invalid_header updating http_500 http_502 http_503 http_504;



                proxy_connect_timeout   300;

                proxy_send_timeout      300;

                proxy_read_timeout      300;

                proxy_http_version      1.1;

                proxy_set_header        Connection "";



                add_header              X-Backend "$upstream_addr";

        }



        location ~* ^.+.(js|css|ico|gif|jpg|jpeg|png)$ {

                proxy_pass              http://tomcat ;

                proxy_redirect          off;

                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_cache_use_stale   error timeout invalid_header updating http_500 http_502 http_503 http_504;



                proxy_connect_timeout   300;

                proxy_send_timeout      300;

                proxy_read_timeout      300;

                proxy_http_version      1.1;

                proxy_set_header        Connection "";



                proxy_cache             static;

                proxy_cache_key         $host$uri$is_args$args;

                proxy_cache_valid       200 302 5m;

                proxy_cache_valid       404 1m;

                proxy_cache_valid       any 1h;

                add_header              X-Cache $upstream_cache_status;



                #log_not_found off;

                #access_log off;

                expires max;

        }



        location ~ /.ht {

                deny  all;

        }





} (责任编辑:IT)
------分隔线----------------------------