django 在uwsgi下无法访问_Docker环境部署Django+Supervisor+Nginx

制作django镜像环境(Commit方式)

下载Ubuntu

$ docker pull ubuntu

运行并进入容器

$ docker container run -it ubuntu /bin/bash

下载python

/# apt-get install python3

如遇到下载问题如下图

e6ead29f2624ff58ead18cb3120e319e.png

更新软件源,之后就可以正常下载python了

/# apt-get update

安装pip3工具

/# apt-get install python3-pip 

修改pip下载的镜像源

/# apt-get install vim
/# mkdir ~/.pip
/# vim ~/.pip/pip.conf

[global]
index-url=http://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

在pip.conf文件写入镜像地址

71fbed9bf17ea711280b8e48db6c7402.png

安装Django相关库

/# pip3 install django
/# pip3 install pymysql
/# pip3 install uwsgi
/# pip3 install supervisor

ef917ec3a34041da1500841c25708209.png

测试

制作镜像

$ docker commit -m='python3+django3' -a='zn' 6492bd45dd18 ubuntu:django1

59d5d394e451e65c0c04dfb357fba7f8.png

因为选择程序放在宿主机上,所以需要进行目录挂载。设置共享文件夹,注意共享文件夹名称会自动生成,但是其中不能包含大写字母和特殊字符?等,如存在请手动修改;常规->共享粘贴板需设置为主机到虚拟机。然后重启default。

2d6910a56446884fb8adb2a6eae8304d.png

806cc835e2bec0748390f55273c5c364.png
$ docker-machine restart default

运行该容器并运行Django项目

$ docker container run -p 8083:8000 -it -v /web/:/home/project ubuntu:django1 /bin/bash

1679c3723f5f6027663b93dcd931239e.png

浏览器访问网址 http://192.168.99.100:8083/admin 显示如下界面即为成功

01a682eaa810352777f9b58da29fbcd6.png

开始尝试nginx部署

nginx 在一个docker里面,django+uwsgi在一个docker里面,nginx容器就直接从docker hub下载,Django镜像就用上面生成的ubuntu:django1镜像

$ docker pull nginx

准备配置文件,以挂载方式加载到容器中

Nginx配置文件 default.conf

upstream django{
         # server unix:///home/andrew/django/abuild/abulid.sock;
         server 192.168.99.100:8083;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name 192.168.99.100;
        charset utf-8;

        client_max_body_size 75M;


       location /media {
             alias /home/project/mysite/media;
       }

       location /static {
            alias /home/project/mysite/static;
       }

       location / {
           uwsgi_pass django;
           include /etc/nginx/uwsgi_params;

       }
}

supervisord.conf

利用supervisord.conf工具生成supervisord.conf初始文件

echo_supervisord_conf > /etc/supervisord.conf

然后在文件末尾添加以下内容,在保存到宿主机中

[program:mysite]
command=/usr/local/bin/uwsgi --ini /home/project/mysite/uwsgi.ini
directory=/home/project/mysite/
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

uwsgi.ini

[uwsgi]
socket = :8000
chdir = /home/project/mysite/   
wsgi-file = mysite/wsgi.py
touch-reload = /home/project/mysite/reload

processes = 2
threads = 4

chmod-socket = 664
chown-socket = mysite:nginx

vacuum = true

py-autoreload=1

启动django镜像

/home/project/mysite# supervisorctl -c supervisord.conf restart mysite

8d3e702c108782e33af60828b31fe5ac.png

启动nginx镜像

$ docker container run -it -p 8089:80 --link 7575c5c6aa2a:web -v /web/nginx/conf/default.conf:etc/nginx/conf.d/defaule.conf  nginx /bin/bash

重启服务

/# service nginx restart

c9d2189fbcfec75409e03d5fe0be81dc.png

此时,可以浏览器访问 http://192.168.99.100:8089/admin 就可以看到后台登录界面了

aac535e1da7e60a699db76a86dd50d15.png

下一篇会讲述一种更方便的方式生成镜像文件,管理多容器的生成启动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值