FastDFS蛋疼的集群和负载均衡(十四)之Nginx+Tomcat负载均衡

Interesting things

今天来配置一下Nginx+Tomcat负载均衡环境。

image.png

What did you do today

什么是虚拟主机

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。如下图:

image.png

通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置

1.基于ip的虚拟主机 2.基于域名的虚拟主机 3.基于端口的虚拟主机

基于域名的虚拟主机

  • ashin.mayday.com和monster.mayday.com都指向同一台nginx服务器(192.168.12.5),用户访问不同的域名显示不同的网页内容。
  • 修改hosts文件(C:\Windows\System32\drivers\etc\hosts),指定ashin.mayday.com和monster.mayday.com对应的虚拟机。

image.png

html目录创建

在192.168.12.5上创建/usr/local/html/ashin_html,此目录为ashin.mayday.com域名访问的目录

在192.168.12.5创建/usr/local/html/monster_html,此目录为monster.mayday.com域名访问的目录

我们把/usr/local/nginx/html/index.html 拷贝到 /usr/local/html/ashin_html 和 /usr/local/html/monster_html目录下,然后做一些个性化修改。

配置虚拟主机

修改/usr/local/nginx/conf/nginx.conf目录,添加两个虚拟主机。配置如下:

        server {
                listen  192.168.12.5:80;
                server_name     ashin.mayday.com;

                location / {
                        root /usr/local/ashin_html;
                        index index.html index.htm;
                }

        }


        server {
                listen  192.168.12.5:80;
                server_name     monster.mayday.com;

                location / {
                        root /usr/local/monster_html;
                        index index.html index.htm;
                }

        }
  • 访问ashin.mayday.com和monster.mayday.com,美滋滋大功告成!

image.png

image.png

基于端口的虚拟主机

nginx对外提供80和8080两个端口监听服务。请求80端口则请求80_html目录下的index.html,请求8080端口则请求8080_html目录下的index.html

修改/usr/local/nginx/conf/nginx.conf目录,添加两个虚拟主机。配置如下:

        server {
                listen 8080;
                server_name     192.168.12.5;

                location / {
                        root /usr/local/8080_html;
                        index index.html index.htm;
                }

        }

    server {
        listen       80;
        server_name  192.168.12.5;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/80_html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
  • 防火墙添加8080端口策略

image.png

  • 启动nginx,查看端口监听状态

netstat -an|grep 80

image.png

  • 访问192.168.12.5:80 和 192.168.12.5:8080

image.png

image.png

Nginx负载均衡

负载均衡,建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、添加吞吐量、加强网络数据处理能力、提高网络的灵活性和可靠性。

nginx负载均衡服务器:192.168.12.5 tomcat1服务器:192.168.12.6 tomcat2服务器:192.168.12.7

  • 对192.168.12.6和192.168.12.7里的apache-tomcat-8.0.48.tar.gz进行解压,在此之前我们需要安装java环境。

Java环境配置

1.在/usr/local/目录,创建java目录,把jdk-8u151-linux-x64.tar.gz解压到/usr/local/java 2.为java配置本地环境变量。 vim /etc/profile, 添加如下内容: JAVA_HOME=/usr/local/java/jdk1.8.0_151 JRE_HOME=/usr/local/java/jdk1.8.0_151/jre CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib PATH=$JAVA_HOME/bin:$PATH export PATH CLASSPATH JAVA_HOME

image.png 3.使配置生效source /etc/profile 4.测试java环境是否配置成功。

image.png

  • 我们测试启动192.168.12.6和192.168.12.7的tomcat,记得在防火墙添加8080端口策略。

image.png

image.png

image.png

  • 我们进入/webapps/ROOT/目录下,修改index.jsp,进行个性化设置。
  • 我们在192.168.12.5中修改nginx.conf,具体如下:
          upstream tomcat_server_pool {
                server 192.168.12.6:8080 weight=10;
                server 192.168.12.7:8080 weight=10;
        }

    server {
        listen       192.168.12.5:80;
        server_name  ashin.mayday.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://tomcat_server_pool;
            index  index.jsp index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
  • 开启nginx,第一次访问ashin.mayday.com

image.png

  • 第二次访问ashin.mayday.com

image.png


Summary

以上就实现了Nginx+Tomcat负载均衡!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维

ELK Stack最新版本测试二配置篇

http://jerrymin.blog.51cto.com/3002256/1720109

11410
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Topbeat和ELK收集基础架构度量标准

Topbeat是帮助将各种类型的服务器数据发送到Elasticsearch实例的几个“Beats”数据发送器之一,它允许您收集有关服务器上的CPU,内存和进程活...

18630
来自专栏玩转JavaEE

Redis主从复制(二)

上篇文章和小伙伴们一起搭建了redis主从复制环境,但是还不完善,本文我想再和小伙伴们聊聊主从复制环境搭建的一些细节。

13300
来自专栏张戈的专栏

【 ES 私房菜】ElasticSearch 详细部署教程

Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。本文详细介绍了elasticserch的部署...

1.4K10
来自专栏WindCoder

ELK实时日志管理-报错与解决

解决方案: 1. 重新安装新版本的Linux系统 2. 警告不影响使用,可以忽略

48030
来自专栏铭毅天下

干货 | Elasticsearch集群黄色原因的终极探秘

绿色——最健康的状态,代表所有的主分片和副本分片都可用; 黄色——所有的主分片可用,但是部分副本分片不可用; 红色——部分主分片不可用。(此时执行查询部分数...

19500
来自专栏腾讯IVWEB团队的专栏

利用 yeoman 构建项目 generator

yoeman 提出一个 yeoman 工作流的概念,通过脚手架工具,构建工具和包管理器的配合使用让开发者专注于业务的解决上而不是其他小事情。

20200
来自专栏ytkah

wamp设置本地访问路径为a.com

18590
来自专栏linux系统运维

Apache和PHP结合,Apache默认虚拟主机

32960
来自专栏枕边书

网页实时聊天之js和jQuery实现ajax长轮询

众所周知,HTTP协议是无状态的,所以一次的请求都是一个单独的事件,和前后都没有联系。所以我们在解决网页实时聊天时就遇到一个问题,如何保证与服务器的长时间联系,...

78380

扫码关注云+社区

领取腾讯云代金券