我的博客文章网址:
http://www.jloongking.cn/tp50/public/blog/index/blog?blogid=103
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('设置session完成!')
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'
网友评论