Windows IIS/docker+gunicorn两种方式部署django项目

写在最前

本篇文章并不涉及如何使用宝塔搭建django项目,仅适用于windows和docker部署,其中docker是运行在linux平台上的,如果您想在windows上运行docker,请自行搜索如何在windows上运行docker

一、Windows IIS部署

软件

版本

Windows Server

2022

python

3.8.3

1.1安装python

在官网下载对应的版本在服务器安装即可,这里就不进行赘述了 python官网:https://www.python.org/downloads/windows/

建议安装位置不要在C盘,待会会用到,直接默认安装C盘并不方便,请自定义安装位置

在这里插入图片描述
在这里插入图片描述

1.2 安装windows iis

服务器管理器–>添加角色和功能–>在 服务器角色 勾选上 Web服务器(IIS) -->在角色服务中有 应用程序开发至少把CGI勾选上,然后进行安装即可,至此IIS已经安装好

在这里插入图片描述
在这里插入图片描述

1.3 上传项目文件到服务器

省略,这点不会的请百度

1.4 安装模块

注意:国内用户请配置好pip源,具体操作请点击下面的文章

代码语言:javascript
复制
[global]
timeout=300
index-url=https://mirrors.cloud.tencent.com/pypi/simple
[install]
trusted-host=tencent.com

安装模块

代码语言:javascript
复制
# 进入项目文件夹,也就是有requirements.txt文件的目录
pip install -r requirements.txt

安装wfastcgi

pip install wfastcgi

启用wfastcgi

wfastcgi-enable

1.5 配置web.config

在项目根目录配置

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path=""
verb="
"
modules="FastCgiModule"
scriptProcessor="c:\python\python38\python.exe|c:\python\python38\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="C:\wwwroot\demo\demo_project" />
<add key="DJANGO_SETTINGS_MODULE" value="demo_project.settings" />
</appSettings>
</configuration>
在这里插入图片描述

1.6 配置IIS网站(项目文件夹要给完全控制权限)

项目文件夹要给完全控制权限
项目文件夹要给完全控制权限
项目文件夹要给完全控制权限

打开 iis --> 修改默认网站的端口并停止 -->添加网站

在这里插入图片描述
在这里插入图片描述

1.7 配置网站的static和media(选配)

这里演示的是添加static目录,如果您还有media,也是同样的步骤

在这里插入图片描述
在这里插入图片描述

1.8浏览器访问

至此,你的Windows IIS部署的django项目已经成功

二、docker+gunicorn部署(CentOS)

2.1 安装并启动Docker

代码语言:javascript
复制
yum -y install docker
systemctl start docker
systemctl enable docker

2.1.1 修改docker源(选配)

如果您是国内用户,那么请修改默认的docker源,这里推荐使用腾讯云的镜像加速

代码语言:javascript
复制
cat > /etc/docker/daemon.json<<EOF
{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}
EOF
# 重启容器
sudo systemctl restart docker

2.2 上传并解压项目

这里并不演示如何上传项目

代码语言:javascript
复制
# 解压
unzip demo.zip
cd demo

2.3 编写Dockerfile

请在项目的根目录创建Dockerfile

代码语言:javascript
复制
FROM python:3.8.3

设置 python 环境变量

ENV PYTHONUNBUFFERED 1

在容器内创建项目文件夹

RUN mkdir -p /demo # 请修改成你自己的项目名称

设置容器内工作目录

WORKDIR /demo # 请修改成你自己的项目名称

将项目根目录文件添加到容器中

ADD . /demo # 请修改成你自己的项目名称

pip安装依赖 -i 设置源

RUN pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple

其中最后一个参数需要修改成你自己的项目名称

有其他更多关于gunicorn的参数,有需要可以自行百度搜索

CMD [ "gunicorn", "--bind" , "0.0.0.0:80", "demo.wsgi"]

2.4 构建镜像并运行容器

在项目根目录下,即上一步创建Dockerfile的目录

代码语言:javascript
复制
# 构建镜像

其中-t 参数后面跟的是 镜像的名称,自己随便取

docker build -t demoimg .

运行容器

其中 --name 是容器名称(随便取) , -p是端口映射 主机端口:容器端口 最后是镜像的名称(即上一步构建的镜像)

docker build -dit --name demo -p 80:80 demoimg

2.5 访问你的容器

在浏览器打开对应的ip+端口即可

希望这篇文章能够帮助到您