windows环境下为django项目配置nginx,并配置ssl证书

本文详细记录了如何在服务器上部署Django项目,包括配置Nginx、申请SSL证书、设置Django项目以及调整相关设置。重点介绍了从下载Nginx到修改nginx.conf文件的全过程,确保项目可以通过HTTPS安全访问。
摘要由CSDN通过智能技术生成


前言

刚开始配置花了很多时间,现在记录一下以供以后参考。

准备

django: 2.2.24
python: 3.7
nginx: 1.21.1

一、准备nginx

当官方网站下载nginx:http://nginx.org/en/download.html
解压后运行cmd到对应目录输入命令:

start nginx

会有个黑窗口闪现一下,正常现象。然后输入你的服务器地址:80,(默认80端口)如能看到如下页面,说明nginx运行成功:
在这里插入图片描述

二、准备SSL证书

去阿里云服务器申请一个免费的ssl证书(网上很多实例,这里不再说明),下载到服务器上,记得选择下载nginx的证书

三、准备django项目

把本地的项目拷到服务器端,确保输入命令python manage.py runserver能运行。

注意:

1.记得修改settings.py下面内容:

DEBUG = False
ALLOWED_HOSTS = ['*']

2.建议不要把本地的虚拟环境(项目根目录下的venv文件夹)也拷到服务器上

我的做法:
在本地输入如下命令获得项目依赖文件requirements.txt

pip freeze > requirements.txt

把requirements.txt拷贝到服务器上之后在服务器上输入命令即可下载项目对应的所有依赖:

pip install -r requirements.txt

四、配置nginx

修改conf文件夹下的nginx.conf文件:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen 443 ssl;    # 将80端口改成443端口,监听443端口
        ssl_certificate nginx_pem\******.pem;    # 服务器上证书路径,写相对路径
        ssl_certificate_key nginx_pem\********.key;    # 服务器上私有密钥文件路径,写相对路径
        server_name www.your_domain.com;    # 域名

        location / {
            proxy_pass http://127.0.0.1:8002;  # django项目在服务器上的运行地址
        }

        location /static {
            alias  D:\WX_Project\static;   # 静态资源路径
        }
    }
}

修改之后重启nginx(nginx.conf修改后要重启才能生效):

nginx -s reload

输入命令运行django项目(我用8002端口运行,也可以是其它端口,要和nginx.conf里面配置的端口一致):

python manage.py runserver 8002

这样就可以通过https访问了。
注意:需要输入完全正确的路径,否则会无法访问:
在这里插入图片描述

这里提供一个基本的 Django2.2.1 和 Nginx1.14.1 的配置方法,具体细节可能会因为你的服务器环境而略有不同。 1. 安装 Django2.2.1 和 Nginx1.14.1 首先,你需要在你的服务器上安装 Django2.2.1 和 Nginx1.14.1。你可以使用以下命令安装: ``` pip install Django==2.2.1 sudo apt-get install nginx ``` 2. 创建 Django 项目 使用以下命令创建一个 Django 项目: ``` django-admin startproject myproject ``` 这将在当前目录中创建一个名为 myproject 的 Django 项目。 3. 配置 Django 项目 在 myproject 目录中,打开 `settings.py` 文件,并进行以下更改: - 将 `ALLOWED_HOSTS` 设置为你的域名或 IP 地址。 - 将 `DEBUG` 设置为 False。 4. 配置 NginxNginx 中,你需要设置一个反向代理来将请求转发到 Django 项目。打开 `/etc/nginx/sites-available/default` 文件,并进行以下更改: ``` server { listen 80; server_name yourdomain.com; # 修改为你的域名或 IP 地址 location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 5. 启动 Django 项目Nginx 使用以下命令启动 Django 项目: ``` cd myproject python manage.py runserver 127.0.0.1:8000 ``` 然后使用以下命令启动 Nginx: ``` sudo systemctl start nginx ``` 现在你的 Django 项目已经可以在 Nginx 上运行了。在浏览器中输入你的域名或 IP 地址,应该能够看到 Django 项目的欢迎页面。如果你想使用 HTTPS,你需要为 Nginx 配置 SSL 证书。 以上就是一个基本的 Django2.2.1 和 Nginx1.14.1 的配置方法。你可以根据自己的需要进行修改和调整。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值