«

Tomcat多实例

指尖二进制 • 1 年前 • 799 次点击 • TOMCAT


Nginx=192.168.43.2
Tomcat=192.168.43.50
Client=192.168.43.73

如果让客户端通过nginx访问到tomcat界面怎么做?
答:url重写。通过rewrite把web界面发布出去。前面已经写过关于url重写的文章自行参考:http://doc.cloud.com/docs/middleware/middleware-1fcqh6cdfbvse

只需要在server段添加rewrite重写就可以

    server {
        listen       80;
        server_name  localhost;
        location / {
            #root   html;
            #index  index.html index.htm;
            rewrite ^/$ http://192.168.43.50:8080;
        }

tomcat多实例。前面文章已经解决能登陆、后台也已经能管理界面了。
tomcat除了8080端口还有8005、8009。

<Server port="8005" shutdown="SHUTDOWN">
8005端口:远程关闭tomcat,线上环境需要把SHUTDOWN给换掉,换成一个负载点。越难记住越好。

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
8080端口:连接端口1.1协议

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
8009端口:

AJP定向包协议
作用:使用位进制格式传输一些可读性文本。
为什么要使用AJP?
tomcat优势是树立jsp的Java代码写的页面,但是对于静态页面、图片它的处理能力特别差。

如果有图片和静态页面怎么办?分流会在下面体现,但是图片没有需要自己去找或者自己编写jsp页面。
做一个分流。不让tomcat处理这东西,因为这是tomcat的弱项,把它交给AJP来完成。AJP在tomcat当中作用就是帮助tomcat处理图片和静态页面的。

如果tomcat需要多开且端口不能冲突。怎么办?修改端口呗、笨蛋。
vim /usr/tomcat/tomcat-8.5/conf/server.xml
采用最简单的办法把所有端口都加1,也就是8006、8081、8010。一个实例三个端口,需要多开都加1即可。
重启tomcat

用nginx发布两个tomcat页面且不是同一个端口:
首先在tomcat上在创建一个页面。tomcat发布页面在webapps:

cd /usr/tomcat/tomcat-8.5/webapps
mkdir zhangjianzi
cd zhangjianzi
vim index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>张松博客</title>
</head>
<body>
    <p>一个人的快乐不是因为得到的多<br />而是因为计较的少</p>
    <p>张松</p>

    <h1>张尖子</h1>
    <h2>张尖子</h2>
    <h3>张尖子</h3>
    <h4>张尖子</h4>
    <h5>张尖子</h5>
    <h6>张尖子</h6>

    <span>Hello</span>
    <span>World</span>

    <br /><a href="http://foolcloud.cn">张松博客</a>
    <br /><a><h1>这个就是URL重写,虚拟主机配合使用。</h1></a>
    <br /><a>当你发现自己的才华撑不起自己的野心时,那就安静下来学习吧!<a>
</body>
</html>

修改nginx服务器配置文件:
怎么做?客户端访问www.a.com出现上面自己写的页面。访问www.b.com出现tomcat管理界面。

vim /usr/local/nginx/conf/nginx.conf

    server {
        listen       80;
        server_name  www.a.com;
        location / {
                rewrite ^/$ http://192.168.43.50:8080/zhangjianzi;
        }
    }

    server {
        listen       80;
        server_name  www.b.com;
        location / {
             rewrite ^/$ http://192.168.43.50:8081;
        }
    }

重启nginx:

客户端进行访问:
首先要想通过域名访问必须修改hosts文件:两个ip地址都是nginx服务器的地址。意思就是域名能够正常解析,当然如果购买的域名经过管局审核不用在hosts文件加入也是可以的:

vim /etc/hosts
192.168.43.50 www.a.com
192.168.43.50 www.b.com

这个就是URL重写、虚拟主机配合使用。

还没收到回复