宝塔面板Docker+Uwsgi+Nginx+SSL部署Django项目
    		       		warning:
    		            这篇文章距离上次修改已过428天,其中的内容可能已经有所变动。
    		        
        		                
                以下是一个使用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以上是一个简化版本的示例,实际部署时需要根据项目具体情况进行调整。
评论已关闭