CentOS 下 Nginx + Tomcat 配置负载均衡之一

前言

为什么要做负载均衡?

当你网站是一个企业站、个人博客的时候,或者访问量比较小的时候,一台服务器完全应付的了,那就完全没必要做负载均衡。但是,如果你的网站是平台级别,用户至少百万级别了,一台服务器明显撑不住了,那就要考虑多台服务器,这个时候每个服务器分配多少用户,负载均衡是最好的解决方式。举个大的不是很恰当的栗子:淘宝网。

对于互联网服务,负载平衡器通常是一个软体程序,这个程序侦听一个外部端口,互联网用户可以通过这个端口来访问服务,而作为负载平衡器的软体会将用户的请求转发给后台内网服务器,内网服务器将请求的响应返回给负载平衡器,负载平衡器再将响应发送到用户,这样就向互联网用户隐藏了内网结构,阻止了用户直接访问后台(内网)服务器,使得服务器更加安全,可以阻止对核心网络栈和运行在其它端口服务的攻击。

当所有后台服务器出现故障时,有些负载平衡器会提供一些特殊的功能来处理这种情况。例如转发请求到一个备用的负载平衡器、显示一条关于服务中断的消息等。负载平衡器使得IT团队可以显著提高容错能力。它可以自动提供大量的容量以处理任何应用程序流量的增加或减少。(摘自维基百科)



怎么做?

这里我们用 Nginx 做负载均衡,nginx 是一款面向性能设计的 HTTP ,稳定性高的反向代理服务器,可以做负载均衡和 HTTP缓存。

具体操作?

1. 安装nginx

参考:https://blog.csdn.net/u014225733/article/details/81011892

2. 安装tomcat

参考:https://mp.csdn.net/postedit/81015059

3. 复制两份tomcat解压包

[root@bogon software]# mv apache-tomcat-8.5.32 tomcat1
[root@bogon software]# cp -r tomcat1 tomcat2

4. 修改tomcat2的默认端口(三处),和tomcat1区别开

    参考:https://blog.csdn.net/kzdwts/article/details/79368188

[root@bogon ~]# cd /software/tomcat2/conf/
[root@bogon conf]# vi server.xml 

将8080改为8081

将8005改为9005

将8009改为9009



5. 修改tomcat1和tomcat2的默认欢迎页(待会nginx路由到相应的tomcat服务器上时可以从页面上直接看出来)

[root@bogon ~]# cd /software/tomcat2/conf/
[root@bogon conf]# vi web.xml 


[root@bogon ~]# cd /software/tomcat1/conf/
[root@bogon conf]# vi web.xml 


分别在tomcat1和tomcat2 的webapp目录下新建对应欢迎页myIndex1.html,myIndex2.html

[root@bogon ROOT]# cd /software/tomcat1/webapps/ROOT/
[root@bogon ROOT]# touch myIndex1.html 
[root@bogon ROOT]# echo 'the index page of tomcat111111111111111111111' > myIndex1.html 
[root@bogon ROOT]# cd /software/tomcat2/webapps/ROOT/
[root@bogon ROOT]# touch myIndex2.html 
[root@bogon ROOT]# echo 'the index page of tomcat222222222222222222222' > myIndex2.html

重新分别启动两个tomcat实例

[root@bogon tomcat2]# ./bin/startup.sh
[root@bogon tomcat1]# ./bin/startup.sh

查看启动状态可以看到两个tomcat都正常启动了


访问浏览器可以看到都能正常访问到其修改后的欢迎页面



5. 修改nginx配置文件 nginx.conf

[root@bogon tomcat2]# vi /usr/local/nginx/conf/nginx.conf
    upstream myTomcatServer {
        server localhost:8080;
        server localhost:8081;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://myTomcatServer;
        }

6. 使配置文件生效

[root@bogon tomcat2]# cd /usr/local/nginx/
[root@bogon nginx]# ./sbin/nginx -s reload


7. 访问浏览器(默认端口80或者省略不写)

可以看到会交替访问到tomcat1和tomcat2上,这就是最简单的负载均衡配置!大笑



8. nginx也支持通过配置下游服务器的权重来处理不同量的用户请求

如下所示:

upstream myTomcatServer {
        server localhost:8080 weight=1;
        server localhost:8081 weight=3;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://myTomcatServer;
        }

来各复杂的栗子吧?

重启一篇,在这里



原文地址:https://www.cnblogs.com/codestarer/p/13635571.html