Django项目的部署,最方便的方法是通过Docker部署,但是如果阿里云的服务器操作系统是window server的,使用Docker还是蛮麻烦的,所以这里还给大家介绍怎么在window server里面部署Django项目
在window server 2012中部署
域名配置
配置域名解析,让其指向我们的阿里云服务器的公网地址。
下载安装nginx
nginx的下载安装非常简单,只要到nginx的官网https://nginx.org/en/download.html下载最新版的window平台压缩包,解压到指定目录下即可。
下载安装nginxWebUI
nginxWebUI是一个国人开发的开源的nginx web管理工具,基于Springboot开发,因而可以跨平台使用。nginxWebUI可以内置nginx,还可以免费申请https证书并自动续费,非常的好用,即使是菜鸟,基本上也可以拿来即用,强烈推荐!
1、安装JDK,设置JAVA_HOME
2、到https://www.nginxwebui.cn/下载最新版的nginxWebUI,保存到本地某个目录中,例如出:C:\application\nginxWebUI,新建一个start.bat文件,输入以下内容并保存,路径和版本请自行修改。
java -jar -Dfile.encoding=UTF-8 C:/application/nginxWebUI/nginxWebUI-3.5.5.jar --server.port=8080 --project.home=D:/home/nginxWebUI/
访问http://localhost:8080
第一次启动时要求设置管理员用户和密码,自行输入即可。
nginx设置,第一次进入nginxWebUI时,会要求设置nginx(如果是Docker安装可以略过这一步)。
这时会要求设置nginx.exe的路径和nginx所在的目录。
进入启用配置菜单,然后点启动nginx即可启动nginx了。
新建webapi_start.bat
在项目的根目录下新建一个webapi_start.bat文件,输入以下内容后保存
python manage.py runserver 127.0.0.1:1831
其实就是启动Django项目的命令,运行该bat文件启动Django服务
配置域名转发
进入nginxWebUI,添加反向代理,设置监听端口,域名和代理目标,提交即可。
https证书申请和配置
点证书管理,点添加证书,就可以添加证书了,证书的申请可以选择申请获得、手动上传,DNS验证获得三种方式,请根据自己的情况进行申请即可。
证书申请好之后,选择反向代理,编辑反向代理,把监听端口改成443,开启ssl选是,然后选择对应的证书即可。
在实际部署过程中,发现nginxWebUI并不支持在window下面生成https证书,所以这里我们只能在阿里云的域名管理中生成https证书,下载到本地后通过上传来配置域名的https证书,这样的坏处是我们就不能使用nginxWebUI的自动续签功能了。
nginx安装为window服务
前面我们都是通过nginxWebUI来启动和关闭nginx的,但是如果window重启,则必须手动去启动nginx,可以把nginx安装成window服务,让它在window启动的时候自动启动,安装方法很简单,到https://nssm.cc去下载nssm.exe,在nssm.exe所在的目录下运行如下命令
nssm.exe install nginx
在弹出的窗口中设置nginx.exe的路径,点install service即可。
要删除服务也很简单,执行命令“nssm.exe remove nginx”,然后点确定即可(需要以管理员身份运行CMD)。
Docker部署
Dockerfile
在项目目录下新建一个Dockerfile文件,输入以下内容后保存
# 基于镜像基础
FROM python:3.10.10
# 设置代码文件夹工作目录 /app
WORKDIR /app
# 复制当前代码文件到容器中 /app
ADD . /app
RUN rm -rf /app/venv
# 复制需要的文件
# COPY ./config/config_prod.py /app/webapi/config.py
# 安装所需的包
RUN pip install cryptography -i https://pypi.doubanio.com/simple
RUN pip install Django -i https://pypi.doubanio.com/simple
RUN pip install pymysql -i https://pypi.doubanio.com/simple
EXPOSE 1831
# Run app.py when the container launches
CMD ["python3", "manage.py","runserver","0.0.0.0:1831"]
在dockerfile上点击鼠标右键,然后选择Modify Run Configuration...
这里主要设置一个绑定的端口号,然后点Run运行容器即可。
评论区