admin管理员组

文章数量:1632335

文章目录

  • 前言
  • 准备
  • 一、准备nginx
  • 二、准备SSL证书
  • 三、准备django项目
    • 注意:
      • 1.记得修改settings.py下面内容:
      • 2.建议不要把本地的虚拟环境(项目根目录下的venv文件夹)也拷到服务器上
  • 四、配置nginx


前言

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

准备

django: 2.2.24
python: 3.7
nginx: 1.21.1

一、准备nginx

当官方网站下载nginx:http://nginx/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访问了。
注意:需要输入完全正确的路径,否则会无法访问:

本文标签: 证书环境项目SSLWindows