利用nginx和docker实现一个简易的负载均衡

测试步骤:

1.在服务器中搭建一个nginx服务器并启动,具体过程可参考 http://www.cnblogs.com/pangziyibudong/p/6183692.html,这里不在建立

2.在docker中从源中拉一下nginx的官方镜像,docker pull nginx,留着备用

3.在本地目录新建两个文件夹,我这里的新建在/mydata/test1,/mydata/test2/

4.分别在两个test文件夹中新建index.html来标志,在第一个html中输出this is nginx1,在第二个html中输出this is nginx2,

5.通过docker运行两个nginx服务器的容器,并分别将静态目录映射到我们刚刚创建的目录中

[[email protected] test2]# docker run --name nginx-test -d -p 8080:80 -v /mydata/test1:/usr/share/nginx/html nginx #第一个,将8080端口映射到容器中的80端口
[[email protected] test2]# docker run --name nginx-test1 -d -p 8081:80 -v /mydata/test2:/usr/share/nginx/html nginx #第二个,将容器中的8081端口映射到容器中的80端口

6.修改宿主机中的nginx的配置文件

在http{}中添加如下代码

upstream myweb { #myproject为自定义名字

  #ip_hash;  #开启则代表用ip地址的形式来分配,可解决sesson问题
  server 127.0.0.1:8080 weight=1; #weight越大,权重越高,被分配的几率越大
  server 127.0.0.1:8081 weight=1; #我全部在本机,因此用了本地的ip,只要相应换成对应的ip或者域名即可
}

7.进入conf.d目录,修改default.conf(conf.d中没有此文件可以新建,文件名随意,后缀必须是.conf)

 location / {  
      #如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址
      #proxy_set_header Host $host;
      #proxy_set_header X-Real-IP $remote_addr;
      #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      root   /usr/share/nginx/html;
      index  index.html index.htm;
     proxy_pass http://myweb;  #myweb为之前在nginx.conf中upstream后定义的名字
 }  

8.保存后退出,重启服务器:systemctl restart nginx

9.通过浏览器输入当前域名,并刷新页面,有时输出nginx1,有时输出nginx2,配置成功

至此,一个简答的负载均衡模型配置完成

时间: 2024-12-12 05:24:06

利用nginx和docker实现一个简易的负载均衡的相关文章

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下:

python之路-利用索引切片功能做一个简易的两个未知数的加法计算器,代码如下: #content = input('请输入内容:'),如用户输入:5 +9或 5 + 9 等,然后进行分割再进行计算. content = input('>>>').strip() #content 等于所输入的内容,strip:删除字符串左右两边的空格. index = content.find('+') ''' content内容中的两边的空格都删除了,但中间还有,现在我们只需要定位已知内容是加法,两边

(转)简易WCF负载均衡方案

最近跟高老师讨论nginx跟tomcat集群做负载均衡方案.感觉很有意思.想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现.不过在研究路由服务期间,我有了个自己的方案,哈哈. 我要在客户端跟WCF服务中间部署一台WCF平衡服务器,用来分发请求,模拟nginx的工作. WCF平衡服务器我同样用WCF来实现,所有服务接口全部通过平衡服务区暴露给客户端.对于客户端来说,只要跟正常调用服务一样,添加平衡器的远程服务引用. 实现:

Nginx的安装以及反向代理和负载均衡的配置

环境说明 由于我使用的是windows系统,所以我用虚拟机虚拟出来了3台linux系统 虚拟机一:192.168.1.20 (Nginx反向代理和负载均衡服务器,系统kali linux) 虚拟机二:192.168.1.19 (node服务器一,系统ubuntu 17.10) 虚拟机三:192.168.1.22(node服务器二,系统ubuntu 17.10) 环境需要的程序 git Node Nginx pm2 首先环境的搭建,由于这三台电脑都是我刚刚虚拟出来的,所以什么环境都没有! 虚拟机一

RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群.受限于自身条件,本文使用VMware虚拟机的克隆功能克隆了两台服务器进行操作,仅作为一个demo,开发中可根据实际情况进行调整. 首先看下RabbitMQ高可用负载均衡集群长什么样子: 使用Docker构建RabbitMQ高可用负载均衡集群大概分为三个步骤: 启动多个(3个为例)RabbitMQ,构建RabbitMQ

Nginx+keepalived做双机热备加tomcat负载均衡

Nginx+keepalived做双机热备加tomcat负载均衡 环境说明: nginx1:192.168.2.47 nginx2:192.168.2.48 tomcat1:192.168.2.49 tomcat2:192.168.2.50 vip:192.168.2.51 一.Nginx配置1.安装Nginx所需pcre库wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz tar -zxvf pc

Nginx——事件驱动机制(惊群问题,负载均衡)

事件框架处理流程 每个worker子进程都在ngx_worker_process_cycle方法中循环处理事件,处理分发事件则在ngx_worker_process_cycle方法中调用ngx_process_events_and_timers方法,循环调用该方法就是 在处理所有事件,这正是事件驱动机制的核心.该方法既会处理普通的网络事件,也会处理定时器事件. ngx_process_events_and_timers方法中核心操作主要有以下3个: 1)  调用所使用事件驱动模块实现的proce

利用lvs keepalived配置redis高可用及负载均衡

需求 我们用ES做日志服务,架构是 上游数据来源=>redis=>logstash=>ES redis目前还是单点, 没有做高可用, 现在数据量越来越多, 如果下游消费不出问题还好, redis里面数据来了就走,但是下游一旦出问题, 分给redis的内存半小时就撑满了. 看到redis3.0 beta版本已经提供了集群功能, 但是需要client以集群模式接入, 我们这么多上游用户, 不太可能统一要求他们改造. 公司也有硬件的LB, 同事在E公司的时候就是用的硬件LB. 但接入还要申请,

Nginx服务器的安装与反向代理负载均衡

Nginx服务器 一:什么是Nginx? 我们生活的世界中,有的时候需要上网.我们可以浏览很多很多的网页,这些网页都是由一系列的程序组成,但是我们是否想过,这些程序存储在什么地方呢?没错,这些程序都是存储在一种名叫服务器的硬件上,比如我们的电脑也是一种服务器,只不过我们的个人电脑作为服务器的话性能会比较低.我们的网页程序存储在服务器硬件上,是否可以随意存储呢?不是的,我们需要在服务器硬件的操作系统中搭建一个服务器软件,那么这样,有服务器软件跟服务器硬件配合,才形成一个完整的服务器.服务器软件有非

一个简单的负载均衡的示例

参考地址:http://www.nginx.cn/doc/example/loadbanlance.html 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上.> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003;