{"id":5580,"date":"2016-01-27T23:28:36","date_gmt":"2016-01-27T15:28:36","guid":{"rendered":"http:\/\/rmohan.com\/?p=5580"},"modified":"2016-01-27T23:28:36","modified_gmt":"2016-01-27T15:28:36","slug":"nginx-on-rhel-7-with-tomcat-on-systemd","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=5580","title":{"rendered":"nginx  on RHEL 7 with tomcat on Systemd"},"content":{"rendered":"<p>Tomcat implement multi-instance use systemd\u00a0 centos 7 RHEL 7<\/p>\n<p>rpm -ivh jdk-8u60-linux-x64.rpm<\/p>\n<p>getent group tomcat || groupadd -r tomcat<br \/>\ngetent passwd tomcat || useradd -r -d \/opt -s \/bin\/nologin tomcat<\/p>\n<p>cd \/opt<br \/>\nwget http:\/\/mirror.nus.edu.sg\/apache\/tomcat\/tomcat-8\/v8.0.30\/bin\/apache-tomcat-8.0.30.tar.gz<br \/>\ntar xzf jdk-8u40-linux-i586.tar.gz<\/p>\n<p>mv apache-tomcat-8.0.30 tomcat01<br \/>\nchown -R tomcat:tomcat tomcat01<\/p>\n<p>tar zxvf apache-tomcat-8.0.30.tar.gz<br \/>\nmv apache-tomcat-8.0.30 tomcat02<br \/>\nchown -R tomcat:tomcat tomcat02<\/p>\n<p>sed -i &#8216;s\/8080\/8081\/g&#8217; \/opt\/tomcat01\/conf\/server.xml<br \/>\nsed -i &#8216;s\/8005\/8001\/g&#8217; \/opt\/tomcat01\/conf\/server.xml<br \/>\nsed -i &#8216;s\/8080\/8082\/g&#8217; \/opt\/tomcat02\/conf\/server.xml<br \/>\nsed -i &#8216;s\/8005\/8002\/g&#8217; \/opt\/tomcat02\/conf\/server.xml<\/p>\n<p>sed -i &#8216;\/8009\/d&#8217; \/opt\/tomcat01\/conf\/server.xml<br \/>\nsed -i &#8216;\/8009\/d&#8217; \/opt\/tomcat01\/conf\/server.xml<\/p>\n<p>cd \/usr\/lib\/systemd\/system<br \/>\ncat &gt;tomcat01.service &lt;&lt;EOF<br \/>\n[Unit]<br \/>\nDescription=Apache Tomcat 7<br \/>\nAfter=network.target<br \/>\n[Service]<br \/>\nType=oneshot<br \/>\nExecStart=\/opt\/tomcat01\/bin\/startup.sh<br \/>\nExecStop=\/opt\/tomcat01\/bin\/shutdown.sh<br \/>\nRemainAfterExit=yes<br \/>\nUser=tomcat<br \/>\nGroup=tomcat<br \/>\n[Install]<br \/>\nWantedBy=multi-user.target<br \/>\nEOF<\/p>\n<p>sed &#8216;s\/tomcat01\/tomcat02\/g&#8217; tomcat01.service &gt; tomcat02.service<\/p>\n<p>systemctl enable tomcat01<br \/>\nsystemctl enable tomcat02<br \/>\nsystemctl start tomcat01<br \/>\nsystemctl start tomcat02<\/p>\n<p>proxy_cache_path \/var\/cache\/nginx\/proxy_cache levels=1:2 keys_zone=static:10m inactive=30d max_size=1g;<\/p>\n<p>upstream tomcat {<br \/>\nip_hash\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ;<br \/>\n#hash\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $remote_addr consistent;<br \/>\nserver\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 127.0.0.1:8081 max_fails=1 fail_timeout=2s ;<br \/>\nserver\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 127.0.0.1:8082 max_fails=1 fail_timeout=2s ;<br \/>\nkeepalive\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 16;<br \/>\n}<\/p>\n<p>server {<br \/>\nlisten\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 80;<br \/>\nserver_name\u00a0\u00a0\u00a0\u00a0 tomcat.example.com;<\/p>\n<p>charset\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 utf-8;<br \/>\naccess_log\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/nginx\/tomcat.access.log\u00a0 main;<br \/>\nroot\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/usr\/share\/nginx\/html;<br \/>\nindex\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 index.html index.htm index.jsp;<\/p>\n<p>location \/ {<br \/>\nproxy_pass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 http:\/\/tomcat;<br \/>\nproxy_redirect\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 off;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Host $host;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Real-IP $remote_addr;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Forwarded-For $proxy_add_x_forwarded_for;<br \/>\nproxy_cache_use_stale\u00a0\u00a0 error timeout invalid_header updating http_500 http_502 http_503 http_504;<\/p>\n<p>proxy_connect_timeout\u00a0\u00a0 300;<br \/>\nproxy_send_timeout\u00a0\u00a0\u00a0\u00a0\u00a0 300;<br \/>\nproxy_read_timeout\u00a0\u00a0\u00a0\u00a0\u00a0 300;<br \/>\nproxy_http_version\u00a0\u00a0\u00a0\u00a0\u00a0 1.1;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Connection &#8220;&#8221;;<\/p>\n<p>add_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Backend &#8220;$upstream_addr&#8221;;<br \/>\n}<\/p>\n<p>location ~* ^.+\\.(js|css|ico|gif|jpg|jpeg|png)$ {<br \/>\nproxy_pass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 http:\/\/tomcat ;<br \/>\nproxy_redirect\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 off;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Host $host;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Real-IP $remote_addr;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Forwarded-For $proxy_add_x_forwarded_for;<br \/>\nproxy_cache_use_stale\u00a0\u00a0 error timeout invalid_header updating http_500 http_502 http_503 http_504;<\/p>\n<p>proxy_connect_timeout\u00a0\u00a0 300;<br \/>\nproxy_send_timeout\u00a0\u00a0\u00a0\u00a0\u00a0 300;<br \/>\nproxy_read_timeout\u00a0\u00a0\u00a0\u00a0\u00a0 300;<br \/>\nproxy_http_version\u00a0\u00a0\u00a0\u00a0\u00a0 1.1;<br \/>\nproxy_set_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Connection &#8220;&#8221;;<\/p>\n<p>proxy_cache\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 static;<br \/>\nproxy_cache_key\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $host$uri$is_args$args;<br \/>\nproxy_cache_valid\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 200 302 7d;<br \/>\nproxy_cache_valid\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 404 1m;<br \/>\nproxy_cache_valid\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 any 1h;<br \/>\nadd_header\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 X-Cache $upstream_cache_status;<\/p>\n<p>#log_not_found off;<br \/>\n#access_log off;<br \/>\nexpires max;<br \/>\n}<\/p>\n<p>location ~ \/\\.ht {<br \/>\ndeny\u00a0 all;<br \/>\n}<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tomcat implement multi-instance use systemd centos 7 RHEL 7<\/p>\n<p>rpm -ivh jdk-8u60-linux-x64.rpm<\/p>\n<p>getent group tomcat || groupadd -r tomcat getent passwd tomcat || useradd -r -d \/opt -s \/bin\/nologin tomcat<\/p>\n<p>cd \/opt wget http:\/\/mirror.nus.edu.sg\/apache\/tomcat\/tomcat-8\/v8.0.30\/bin\/apache-tomcat-8.0.30.tar.gz tar xzf jdk-8u40-linux-i586.tar.gz<\/p>\n<p>mv apache-tomcat-8.0.30 tomcat01 chown -R tomcat:tomcat tomcat01<\/p>\n<p>tar zxvf apache-tomcat-8.0.30.tar.gz mv apache-tomcat-8.0.30 tomcat02 chown -R tomcat:tomcat tomcat02<\/p>\n<p>sed [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5580"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5580"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5580\/revisions"}],"predecessor-version":[{"id":5581,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/5580\/revisions\/5581"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}