使用 Docker 部署 Nginx + Uwsgi

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 Docker 部署 Nginx + Uwsgi相关的知识,希望对你有一定的参考价值。

参考技术A 最近,自己写了一些Django 的小应用,因一直在本机做测试及使用,未将其部署至服务器。然而当部署至公司服务器的时候,各种环境问题频出,如Python3没有安装加密模块及Sqlite版本太低等,因为是公司服务器无法找到比较干净的环境,故考虑使用Docker来部署。

查阅网上资料,各个概念就不在这一一做介绍,开始实战:
准备:请在Django的setting文件中将DEBUG设置为False(部署在正式环境,该项肯定要设为False。同事,如果在调试环境中设置为false,则会出现找不到static路径下资源的情况,如:加载不了css和js文件("Failed to load resource: the server responded with a status of 404 (Not Found)")。另外,设置 ALLOWED_HOSTS = ['*']

requirment.txt 如下:

PS: uwsgi 也可先使用命令启动来检测程序是否正常: uwsgi --http :8000 --module ziguan.wsgi (使用http方式启动,后面是ziguan.wsgi 而不是usgi, 请注意!!!)

Nginx配置文件

额外的补充:
当我在K8s部署该环境是,发现两个Nginx的Pod不能同时共享uwsgi创建的socket文件(部署环境为一个独立的uwgi的Pod 和一个独立的nginx的Pod),否则会出错(一个可以正常访问,另一个访问404的问题);可以将uwsgi 和 nginx部署至同一个Pod中,再使用Ingress + svc 进行负载均衡。

参考:
https://blog.csdn.net/midion9/article/details/51354774
https://blog.csdn.net/Miss_Audrey/article/details/81874038

以上是关于使用 Docker 部署 Nginx + Uwsgi的主要内容,如果未能解决你的问题,请参考以下文章

使用docker部署nginx+tomcat架构:使用docker-compose简化部署操作

云原生之Docker实战使用docker部署nginx服务

docker(部署常见应用):docker部署nginx

使用 Nginx Docker 镜像部署前端静态界面

mac docker 部署nginx

使用 Nginx 和 Docker 部署 React 和 Django