Docker+nginx负载均衡+nginx动静分离

Docker+nginx负载均衡+nginx动静分离

 

我们部署的架构如下

1、安装Docker先省略,win10专业版安装十分简单

2、可以通过以下命令拉取nginx和tomcat镜像

docker pull nginx
docker pull tomcat

   3、在自己的宿主主机上创建一个文件夹,如下图(我是创建在D:/VMdata下)

 

4、为了展示效果,制作一个简单的web项目,第一次导出war文件时,置index.jsp输出内容为“您目前访问的是tomcat1的内容”第二次导出war文件时,置index.jsp输出内容为“您目前访问的是tomcat2的内容”,分别将两个war文件放到相对应的宿主主机目录上,如下

D:\VMdata\u02\tomcat\webapps\dockertest.war

D:\VMdata\u03\tomcat\webapps\dockertest.war

5、分别启动两个tomcat,并且将webapps文件夹挂在到Docker

docker run --name=my_tomcat1 -v D:/VMdata/u02/tomcat/webapps:/usr/local/tomcat/webapps -p 8001:8080 -d tomcat

docker run --name=my_tomcat2 -v D:/VMdata/u03/tomcat/webapps:/usr/local/tomcat/webapps -p 8001:8080 -d tomcat

6、分别进入进入tomcat1和tomcat2容器查看IP地址

docker exec -it 4323a82027f2  /bin/bash
more /etc/hosts

结果如下

类似的得到tomcat2容器的IP是172.17.0.3

7、在文件夹D:\VMdata\u01\nginx 创建一个nginx.conf文件放以下内容,在D:\VMdata\u01\resource文件夹中随便放些文件,比如你访问一个网页的时候常见的css,js,img,json,模板,等等

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;

  #  include /etc/nginx/conf.d/*.conf;


   
  
 upstream tomcat_client {
         server 172.17.0.2:8080 weight=1;
         server 172.17.0.3:8080 weight=1;
} 

   
server {
    listen       80;
    server_name localhost;
    location / {
        proxy_pass    http://tomcat_client;
        proxy_set_header Host $host;
        root   /resource/u01;
        index  index.html index.htm;
          
     }
     location /resource {
        root   /u01;
        index  index.html index.htm;
    }
}






}

8、启动nginx,并挂在宿主主机文件夹到Docker

docker run --name=my_nginx1      -v D:/VMdata/u01/nginx/nginx.conf:/etc/nginx/nginx.conf -v D:/VMdata/u01/nginx/conf.d:/etc/nginx/conf.d  -v D:/VMdata/u01/resource:/u01/resource   -p 8000:80 -d nginx

9、结果如下

  

 

如果我们的网站访问量大,部署2台机器还不够,可以多台部署,这就是所谓的横向拓展,即架构具有横向拓展性(但是要分析访问瓶颈在哪,不能有钱就买机器砸进去),对具有登陆功能的网站还需要解决Session一致性问题,下期再讲

      

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值