django 在uwsgi下无法访问_Docker环境部署Django+Supervisor+Nginx-程序员宅基地

技术标签: django 在uwsgi下无法访问  

制作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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35004618/article/details/112110679

智能推荐

解决办法之[email protected]引入ElementUI报错:Uncaught TypeError: Cannot read property ‘prototype‘ of undefined_typeerror: cannot read property 'prototype' of und-程序员宅基地

文章浏览阅读1.6k次,点赞4次,收藏3次。解决Uncaught TypeError: Cannot read property ‘prototype‘ of undefined与Cannot read property ‘use‘ of undefined报错_typeerror: cannot read property 'prototype' of undefined

数据结构课设--7最小生成树问题-程序员宅基地

文章浏览阅读3.6k次,点赞8次,收藏82次。14、最小生成树问题(**)【问题描述】若要在n个城市之间建设通信网络,只需要假设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。【系统要求】1.利用克鲁斯卡尔算法求网的最小生成树。2.利用普里姆算法求网的最小生成树。3.要求输出各条边及它们的权值。【测试数据】由学生任意指定,但报告上要求写出多批数据测试结果。【实现提示】通信线路一..._最小生成树问题(**) [问题描述] 若要在n个城市之间建设通信网络,只需要假设n-1条

java socket 聊天程序_Java Socket与开发一个简单网络聊天程序-程序员宅基地

文章浏览阅读467次。一、Socket通信的基本原理首先socket 通信是基于TCP/IP 网络层上的一种传送方式。socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装,对用户来说,只要通过一组简单的API就可以实现网络的连接。借用网络上一组socket通信图给大家进行详细讲解:首先,服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行..._server talk

模型开发实践(python)_python 大模型开发-程序员宅基地

文章浏览阅读585次。模型开发python_python 大模型开发

Oracle数据库PL SQL开发、Oracle-SQL开发习题答案_查询在2001年11月加入部门,且加入部门后任职半年(按182天算)到1年(365天)的员工编-程序员宅基地

文章浏览阅读1.7k次。第2章 编写简单的查询语句练习11.使用两种方式查询所有员工(EMP)信息。 SELECT * FROM emp; SELECT empno,ename,job,mgr,hiredate,sal,comm,deptno FROM emp;2.查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号。 SELECT empno,ename,job,sal,deptno FROM emp;练习21.员工转正后,月薪上调20%,请查询_查询在2001年11月加入部门,且加入部门后任职半年(按182天算)到1年(365天)的员工编

escape/unescape编码的Delphi实现_delphi < unescape-程序员宅基地

文章浏览阅读3.3k次。版权声明: 本文由Oak/lyris完成,首发于CSDN,作者保留中文版权。未经许可,不得使用于任何商业用途。欢迎转载,但请保持文章及版权声明完整。如需联络请发邮件:[email protected] fu_delphi < unescape

随便推点

STM32 实现 CS1237 称重采集_cs1237不稳定-程序员宅基地

文章浏览阅读2.1k次。实现多路称重模块采集typedef enum { CS1237_CH_1, CS1237_CH_2, CS1237_CH_3, CS1237_CH_4, CS1237_CH_MAX,}CS1237_CH_E;typedef enum{ MODE_OUTPUT, MODE_INPUT,}PORT_MODE_E;#define CS1237_SCLK1_PIN GPIO_Pin_12#define CS1237_DATA1_PIN GPIO_Pin_11 //PA#define_cs1237不稳定

python中arcsec_如何使用Python将Gaia天体测量数据绘制成TESS图像?-程序员宅基地

文章浏览阅读637次。长话短说:我想将盖亚天体测量数据绘制成Python中的TESS图像.这怎么可能?请参阅下面的详细说明.我有一个64×64像素TESS星的图像与Gaia ID 4687500098271761792.TESS天文台指南的第8页说1像素是~21弧秒.使用Gaia Archive,我搜索这颗恒星(在顶部特征下面,点击搜索.)并提交查询以查看1000弧秒内的星星,大致是我们需要的半径.我用于搜索的名称是G..._all_world2pix

防火墙无法打开,错误代码 0×80070422_0x80070422防火墙-程序员宅基地

文章浏览阅读3.9k次。问题现象:打开防火墙,如下提示:处理步骤:1、打开任务管理器2、打开服务3、找到【Windows Firewall】,右键【属性】,将启动类型从【禁用】改为【自动】,以此点击【应用】、【确认】按钮4、点击【启动】按钮5、重新测试,打开或者关闭防火墙功能..._0x80070422防火墙

linux查看mysql编译情况_Linux下查看nginx apache mysql php的编译参数-程序员宅基地

文章浏览阅读58次。维护程序,升级nginx.apache.php,mysql时为了保持程序依赖模块,所以需要知道老版本的编绎参数。为些总结如下:快速查看服务器软件的编译参数:1、nginx编译参数:your_nginx_dir/sbin/nginx -v2、apache编译参数:cat your_apache_dir/build/config.nice3、php编译参数:your_php_dir/bin/php -..._cat your_mysql_dir/bin/mysqlbug |grep configure

Android Studio使用ButterKnife 8.0.1无效的问题_android studio弃用8.0.1-程序员宅基地

文章浏览阅读5.5k次。Android Studio使用ButterKnife 8.0.1的问题最近做一个新项目,之前使用的ButterKnife 7.0.1,得知目前最新的ButterKnife支持ListView,还支持绑定资源,就像在新项目里使用最新的版本8.0.1,可是使用的时候遇到一个问题,那就是使用BindView注解根本绑定不到TextView或ImageView,也就是绑定到的对象都是null,导致程序异常_android studio弃用8.0.1

dos转unix_winscp自动将dos转换为unix-程序员宅基地

文章浏览阅读946次。故障环境:Dockerfile编写环境是Win10+Nodepad++,Docker服务器为Centos7不知道有没有朋友会像我这么懒为了方便测试就用winscp远程打开docker服务器,直接创建dockerfile并进行调试的呢。如果有的话我想一定遇到过这个问题:运行后容器没有驻留,而是异常中止了,使用dokcer logs查看日志却报standard_init_linux.go:1..._winscp自动将dos转换为unix

推荐文章

热门文章

相关标签