让编程改变世界。

Change the world by program.

docker 局域网的建立,与网络ip分配

docker 局域网的建立,与网络ip分配,实现简单的nginx负载均衡,请求分发。


首先是 启动4个容器,这里就不仔细说了,不会的可以自行百度,或者查看文档


我启动的是ubuntu16.04镜像,nginx是自己安装的


docker组建网络命令:

    docker network create netname


将3个容器加入到网络中的命令

    docker network connect netname container1

    docker network connect netname container2

    docker network connect netname container3


查看3个容器的ip

    docker network inspect netname


nginx负载均衡分发的配置如下


upstream model{
        server 172.18.0.3 weight=1;
        server 172.18.0.4 weight=1;
        server 172.18.0.5 weight=1;
        
        #这里的三个ip是上一条命令中三个容器的ip
        
}
server {
        #listen 80 default_server;
        #listen [::]:80 default_server;
        listen 80;
         location / {
                        # First attempt to serve request as file, then
                        # as directory, then fall back to displaying a 404.
                        proxy_pass http://model;
                        proxy_redirect default;
                        #try_files $uri $uri/ =404;
                }
}


配置三个容器的web应用,可以用各种方式,java+tomcat,nginx+php,django等等http服务,

这里我记录了一下我的django 的网站配置

apt-get install python3
apt-get install curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip3 install django
django-admin startproject SessionTest


但是这里由于三台服务器没有办法进行session共享,所以利用了redis进行session的共享


首先安装django-redis-sessions

pip3 install django-redis-sessions


写两个view检测session是否共享成功

from django.http import HttpResponse

from django.conf import settings


def set_session(request):


   request.session['username'] = 'Django'

   request.session['verify_code'] = '123456'

   return HttpResponse('?~]?~Xsession?~U??~M??~H~P?~J~_')


def get_session(request):


   username = request.session.get('username')

   verify_code = request.session.get('verify_code')

   text = '1username=%s, verify_code=%s' % (username, verify_code)

   return HttpResponse(text)


配置setting.py 共同访问redis服务器,这里的redis服务器也是通过docker建立,并且将它放入到了局域网中

SESSION_ENGINE = 'redis_sessions.session'

SESSION_REDIS_HOST = '172.18.0.6' redis局域网中的ip

SESSION_REDIS_PORT = 6379

SESSION_REDIS_DB = 4

SESSION_REDIS_PASSWORD = ''

SESSION_REDIS_PREFIX = 'session'



最新评论(0
<
>
点击登陆

点我登陆