【Django】通过tornado运行Django项目及Nginx本地部署

2022/4/18 7:12:44

本文主要是介绍【Django】通过tornado运行Django项目及Nginx本地部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一,需要解决的问题?

1.1,核心需求是:近期我需要部署本地代码到服务器,想现在本地走一下整体流程及简单原理。

 

1.2,相关知识:

Nginx相关概念

 

二,部署思路

整体思路分两步:使用tornado启动django项目,然后通过Nginx进行部署。

 

1,通过tornado启动本地Django项目(而非本地的manage.py运行项目);

1.1,需要达到的前提条件

  需要先用manage.py跑通项目

1.2,在1.1的基础上在manage.py同级目录新建tornado启动代码(tornado框架本身我不是很了解,只能不求甚解的贴出代码)

  

 代码如下:

# tonadoService.py
import os
11 from tornado.options import options, define
12 from tornado import httpserver
13 from tornado.ioloop import IOLoop
14 from tornado import wsgi
15 from django.core.wsgi import get_wsgi_application
16 
17 port = 8000
18 projectName = "renting"
19 
20 os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{}.settings'.format(projectName))
21 
22 application = get_wsgi_application()
23 define('port', port, type=int)
24 
25 if __name__ == '__main__':
26     options.parse_command_line()
27     app = wsgi.WSGIContainer(application)
28     http_server = httpserver.HTTPServer(app, xheaders=True)
29     http_server.listen(options.port)
30     IOLoop.instance().start()

 1.3,启动tonadoService.py

  需要注意的是18行的 projectName 需要和项目名称一致(见上我的截图上方有项目名),这样才能获取到项目配置

  同时也要注意settings文件进行生产前的检查,别把调试模式放到生产了。

    到此阶段就已经可以正常访问项目了,见图。剩下就是处理Nginx代理的事了。

  

2,配置Nginx达到反向代理的目的。

2.1,在Nginx所在目录的conf/nginx.conf里找到如下配置,

 

 1     server {
 2         listen       80;
 3         server_name  127.0.0.8;
 4 
 5         #charset koi8-r;
 6 
 7         #access_log  logs/host.access.log  main;
 8 
 9         location / {
10             root   html;
11             # index  index.html index.htm;  
12             # index  http://127.0.0.1:8000/user/login;
13             # proxy_pass  http://127.0.0.1:8000/user/login;
14             # proxy_pass  http://127.0.0.1:8000/user/reg;
15             proxy_pass http://127.0.0.1:8000/introducer/login;
16 
17 
18         }

 

1、全局 server 块

最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

2、location 块

一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

2.2,查看是否启动Nginx

2.2.1,Nginx命令

  进入Nginx目录启动Nginx:start nginx

  重载Nginx:nginx -s reload

  关闭Nginx:nginx -s stop

2.2.2,查看是否启动Nginx命令

  查看端口找到对应进程号:
    netstat -ano | findstr 8000  --> 3136

    8000  端口是项目里设置的端口(见上tornadoService代码),能查到进程号则是启动成功。

  也能通过如下命令杀死进程:

    根据进程号强制杀进程:
    tasklist /F /pid 3136

 

 2.2.3,启动项目

  先通过tornado启动Django项目,然后启动Nginx(配置如下),在地址栏输入监听地址127.0.0.1。

 

  项目启动成功。

 

 



这篇关于【Django】通过tornado运行Django项目及Nginx本地部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程