宝塔面板Docker+Uwsgi+Nginx+SSL部署Django项目
以下是一个使用Docker部署Django项目的简化示例,包括Uwsgi和Nginx的配置,以及SSL证书的安装:
- 创建
Dockerfile
文件:
FROM python:3.8
# 设置环境变量
ENV UWSGI_WSGI_FILE /app/myproject/myproject/wsgi.py
ENV UWSGI_SOCKET :8000
ENV NGINX_HOST 0.0.0.0
ENV NGINX_PORT 80
# 安装依赖
RUN pip install --upgrade pip && \
pip install uwsgi django nginx
# 复制项目文件
COPY . /app/
# 设置工作目录
WORKDIR /app
# 设置uWSGI配置文件
COPY uwsgi.ini /app/uwsgi.ini
# 设置Nginx配置文件
COPY nginx.conf /etc/nginx/nginx.conf
# 设置SSL证书
COPY fullchain.pem /etc/nginx/ssl/fullchain.pem
COPY privkey.pem /etc/nginx/ssl/privkey.pem
# 暴露端口
EXPOSE 80 443
# 启动uWSGI和Nginx
CMD ["uwsgi", "--ini", "/app/uwsgi.ini"]
- 创建
uwsgi.ini
文件:
[uwsgi]
module = myproject.wsgi:application
socket = :8000
master = true
processes = 4
vacuum = true
- 创建
nginx.conf
文件:
events {}
http {
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
}
- 将SSL证书
fullchain.pem
和privkey.pem
放在SSL证书所在的目录中。 - 构建并运行Docker容器:
docker build -t myproject .
docker run -d -p 80:80 -p 443:443 myproject
以上是一个简化版本的示例,实际部署时需要根据项目具体情况进行调整。
评论已关闭