Linux学习总结(16)——CentOS 下 Nginx + Tomcat 配置负载均衡

1468人阅读 评论(0) 收藏 举报
分类:

最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」。

仔细一想,好像真的是这样的。

我问了自己一个问题:如果你不敲代码了,你能做什么?

答案令人极其恐怖。吓得我赶紧又去写了一句 system.out.print("Hello World");

为什么要做负载均衡?

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

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

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

怎么做?

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

基于上篇的安装路径,配置 nginx.conf :

vi /usr/local/nginx/conf/nginx.conf
从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

配置代码:

upstream mysite { server 192.168.198.128:8080; server 192.168.198.128:8090; } 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://mysite; }

上边的192.168.198.128:8080192.168.198.128:8090对应的两个不同的网站页面,这里我只是在两个不同的 Tomcat 下放了两个静态页面,在浏览器输入192.168.198.128刷新,你会看到在这两个 Tomcat 之间一替一次切换请求。

从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

刷新:

从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

不同服务器分配不同的数量的用户

这样 nginx 也是支持的,只需要配置upstream节点不同服务器的权重就好了。我这里按 1:3 进行的演示配置。

从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

配置完成。

注意:目前这种简单负载均衡配置,并不能共享 Session。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1270139次
    • 积分:18847
    • 等级:
    • 排名:第492名
    • 原创:608篇
    • 转载:189篇
    • 译文:4篇
    • 评论:146条
    博客专栏
    WebService

    文章:6篇

    阅读:8449
    项目管理

    文章:8篇

    阅读:2570
    SQLite

    文章:3篇

    阅读:649
    Beetl

    文章:4篇

    阅读:16176
    Solr

    文章:1篇

    阅读:288
    商城

    文章:0篇

    阅读:0
    Kafka

    文章:1篇

    阅读:308
    MongoDB

    文章:2篇

    阅读:2782
    Hadoop

    文章:3篇

    阅读:6281
    Zookeeper

    文章:3篇

    阅读:3960
    Redis

    文章:4篇

    阅读:5056
    Dubbo(x)

    文章:5篇

    阅读:11335
    Spring Cloud

    文章:2篇

    阅读:1386
    云计算

    文章:1篇

    阅读:996
    ECMAScript 6

    文章:1篇

    阅读:595
    Vue.js

    文章:2篇

    阅读:2254
    Jenkins

    文章:7篇

    阅读:13948
    敏捷开发

    文章:11篇

    阅读:8770
    JavaSctipt

    文章:15篇

    阅读:15463
    Nginx

    文章:10篇

    阅读:7812
    App后台

    文章:8篇

    阅读:11934
    网站架构设计

    文章:38篇

    阅读:51100
    Android

    文章:6篇

    阅读:5920
    SpringBoot

    文章:8篇

    阅读:16683
    Netty

    文章:6篇

    阅读:6674
    PHP

    文章:14篇

    阅读:9579
    Shiro

    文章:5篇

    阅读:11505
    RabbitMQ

    文章:7篇

    阅读:12583
    SpringMVC

    文章:17篇

    阅读:26239
    JavaWeb

    文章:37篇

    阅读:48094
    Myeclipse

    文章:11篇

    阅读:18026
    Java

    文章:115篇

    阅读:126321
    Spring

    文章:23篇

    阅读:58147
    Linux

    文章:42篇

    阅读:60078
    ActiveMQ

    文章:10篇

    阅读:19974
    Git

    文章:18篇

    阅读:32271
    Docker

    文章:29篇

    阅读:86048
    Tomcat

    文章:16篇

    阅读:87467
    Windows

    文章:16篇

    阅读:19679
    Mybatis

    文章:22篇

    阅读:48664
    Mysql

    文章:49篇

    阅读:93615
    Maven

    文章:41篇

    阅读:77666
    文章分类