使用nginx+uwsgi部署django项目(2)

详细部署过程:docker部署django项目

项目访问过程

        1.用户通过8081端口访问静态页面,8081端口映射nginx的80端口,通过80端口访问nginx服务器上的静态文件

        2.用户访问静态页面出发的接口请求(动态请求)通过8080端口访问uwsgi服务,uwsgi服务传递给django获取数据,并返回给nginx服务,nginx服务返回给前端进行渲染

        其中,nginx和uwsgi通过8080端口进行通信;注意启动niginx的外部端口(我这边是使用8081)不能与容器之间通信的端口(我这边使用的是8080)一致,否则项目无法正常使用

使用到的容器:

        mysql容器

        python容器

        nginx容器

启动nginx容器:

docker run -itd -p 8081:80 -v /root/conf:/etc/nginx -v /root/software/TestPlatform/testplatform/dist:/usr/share/nginx/html  --name mynginx --rm nginx

nginx作为前端代理服务,管理静态文件;

其中8081为外部访问nginx服务器的端口,8080映射nginx的80端口

 

启动mysql容器:

 

启动python容器:

docker run -itd -v /root/software/TestPlatform/testplatform/:/opt --rm --name mypython python:3.7

uwsgi服务:

uwsgi代替django自带的服务,管理动态请求(接口请求)

个人配置内容如下:使用http通信,设置http = 0.0.0.0:8080表示uwsgi使用8080端口进行通信

[uwsgi]
chdir = /root/software/TestPlatform/testplatform/  
module = testplatform.wsgi:application
http = 0.0.0.0:8080
master=true
pidfile = /root/software/TestPlatform/testplatform/uwsgi8080.pid
daemonize =/root/software/TestPlatform/testplatform/uwsgi_server.log

(重点)nginx和uwsgi通信

  也就是前端静态页面与django动态接口请求之间进行通信

临时通信方式:使用容器之间的通信

        1.通过命令:docker network inspect bridge查询各个容器的ip

         2.由于uwsgi是依托于python的,所以python所在的ip就是uwsgi的ip,结合uwsgi配置的端口8080,所以要访问uwsgi的ip和端口就是:http://172.17.0.2:8080

         3.修改niginx的配置文件:

 nginx和uwsgi都配置完成后,需要重启:

        docker restart nginx容器名称

        uwsgi --reload xxx.pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miss糖豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值