聊聊Django+uwsgi+nginx服务器部署问题

聊聊Django+uwsgi+nginx服务器部署问题

目录

准备工作

安装anaconda:

安装需要的组件

创建django程序(本地)

使用文件传输工具将django程序传输到服务器

部署工作

配置uwsgi

配置nginx

配置ssl证书以提供https访问

准备工作

推荐使用anaconda进行python环境的管理,因python环境容易出现各种版本冲突问题

安装anaconda: wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh bash Anaconda3-2020.11-Linux-x86_64.sh

一路回车,有提示后“yes”再回车,这里安装到的目录在/root下

把conda添加到环境变量

vim /etc/profile

在文件末尾添加

PATH=$PATH:/root/anaconda3/bin# 根据目录情况 export PATH

启用环境变量

source /etc/profile

新增合适的虚拟环境

conda env list# 查看环境 conda create -n myDjango python=3.7.5 conda activate myDjango # 启动虚拟环境时可能需要先 source activate 安装需要的组件

需要的有django,uwsgi,nginx

pip install django# 版本为4以上 pip install uwsgi yum install nginx

使用查看版本语句查看是否安装成功

python -m django --version uwsgi --version nginx -V 创建django程序(本地)

可在pycharm中一键创建,也可以使用命令行创建

django-admin startproject mysite

获得目录如下

mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py

manage.py 用于启动项目 python manage.py runserver

二级mysite可对项目进行整体配置

mysite/settings.py 项目配置文件,包含数据库,debug,语言时区等

mysite/urls.py 配置项目路由

mysite/wsgi.py 使用uwsgi管理django程序时需要用到

创建应用

python manage.py startapp myApp

得到app目录如下,可在此编写视图模块等,然后在urls内编写路由以提供访问,不再赘述

myApp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py 使用文件传输工具将django程序传输到服务器

可使用xftp,filezilla或宝塔之类

部署工作 配置uwsgi

在以放到服务器上的django项目目录下创建uwsgi.ini文件,即uwsgi配置

我的项目目录为/home/mysite

[uwsgi] chdir=/home/djangoProject# 项目位置 #socket=:8000# 通过nginx使用的配置 http=:8000# 单独启动时使用的配置 wsgi-file=/home/djangoProject/djangoProject/wsgi.py# 项目中wsgi文件位置 process=4 threads=2 pidfile=uwsgi.pid# 生产pid,log文件,以查看日志和pid信息 daemonize=uwsgi.log master=True

此时可以启动uwsgi来启动项目

uwsgi --ini uwsgi.ini# 通过刚创立的ini配置来启动,会生成pid和log文件 uwsgi --stop uwsgi.pid# 必须使用pid文件来停止程序

此时可以使用端口查看语句查看程序是否已经运行

netstat -tlnp|grep 8000# django程序默认开启端口为8000,也可在ini文件中自行修改

若已成功启动,一句可以通过访问域名/ip:8000访问django程序

配置nginx

首先需要将uwsgi.ini配置进行更改,取消http,打开socket

[uwsgi] chdir=/home/djangoProject# 项目位置 socket=:8000# 通过nginx使用的配置 #http=:8000# 单独启动时使用的配置 wsgi-file=/home/djangoProject/djangoProject/wsgi.py# 项目中wsgi文件位置 process=4 threads=2 pidfile=uwsgi.pid# 生产pid,log文件,以查看日志和pid信息 daemonize=uwsgi.log master=True

nginx配置文件默认在/etc/nginx/nginx.conf,需要编辑的是http下的server内容
location中增加两个内容

uwsgi_pass 0.0.0.0:8000;# 与uwsgi.ini文件配置的socket保持一致 include /etc/nginx/uwsgi_params;# 引用nginx的uwsgi_params载入参数

server部分如下

server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { uwsgi_pass 0.0.0.0:8000; include /etc/nginx/uwsgi_params; } }

可以用nginx -t语句检查是否合法
通过server语句启动/停止/重启 nginx

server nginx start/stop/restart

nginx默认开启端口为80,也可通过查看端口情况观察是否成功开启

netstat -tlnp|grep 80

若启动成功则nginx反向代理成功,已经可以通过访问80端口访问django程序

配置ssl证书以提供https访问

需要在服务器代理厂商处申请ssl证书并下载nginx版本,将得到包含域名在内的证书文件.pem和证书密钥.key,将两个文件传输到服务器nginx目录下,最好建立一个证书专用目录

更改nginx.conf配置文件server内容

server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/nginx/cert/证书名.pem"; ssl_certificate_key "/etc/nginx/证书密钥.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { uwsgi_pass 0.0.0.0:8000; include /etc/nginx/uwsgi_params; } error_page 404 /404.html; location = /40x.html { error_page 500 502 503 504 /50x.html; location = /50x.html { }

注:每次更改nginx配置都需要重启nginx服务才能生效

到此这篇关于Django+uwsgi+nginx服务器部署的文章就介绍到这了,更多相关Django+uwsgi+nginx服务器部署内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机

    军用物资9000元z77游戏安装方案

    军用物资9000元z77游戏安装方案,,在英特尔Ivy Bridge平台,主板制造商z77主板已经有些无法抵御孤独。最近,有z77a-gd55 MSI主板经销商成立一