我是靠谱客的博主 危机哈密瓜,最近开发中收集的这篇文章主要介绍windows下Nginx+tornado部署Django,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.下载Nginx,配置nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    upstream frontends {
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        server 127.0.0.1:8003;
    }
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on; 
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;      

         location ^~ /static/ {
            root D:PythonProjectdjango_web;
            if ($query_string) {
                expires max;
            }
        }
        location ^~ /media/ {
            root D:PythonProjectdjango_web;
            if ($query_string) {
                expires max;
            }
        }
        location = /favicon.ico {
            rewrite (.*) /static/favicon.ico;
        }
        location = /robots.txt {
            rewrite (.*) /static/robots.txt;
        }
        location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends;
        }
    }
}

2.运行nginx.exe启动程序

3.下载tornado 我是在虚拟python环境下装的,激活虚拟环境(写了个激活批脚本activate.vbs)

set objShell=wscript.createObject("wscript.shell")
objShell.Run("cmd.exe /k D:PythonProjectdjangowebScriptsactivate.bat")

4.为虚拟环境安装tornado ,本人采用下载包安装所以命令为

python setup.py install

5.写tornado配置放在项目根目录下 (serv.py)

#/usr/bin/env python
from tornado.options import options, define, parse_command_line
from django.core.wsgi import get_wsgi_application
import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.wsgi
import os, sys


SITE_ROOT = os.path.dirname(os.getcwd()) 
PROJECT_NAME = os.path.basename(os.getcwd())

sys.path.append( SITE_ROOT )
os.environ['DJANGO_SETTINGS_MODULE'] = PROJECT_NAME + '.settings'

define('port', type=int, default=8080)
def main():
    tornado.options.parse_command_line()

    wsgi_app = tornado.wsgi.WSGIContainer(
        get_wsgi_application())

    tornado_app = tornado.web.Application(
        [            
            ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
        ])

    server = tornado.httpserver.HTTPServer(tornado_app)
    server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == '__main__':
        main()

6.激活的环境下运行tornado服务

 python serv.py --port=8000

python serv.py --port=8001

python serv.py --port=8002

python serv.py --port=8003

7.好了,现在可以输入http://127.0.0.1访问网站了。

 8、以上网站已经能够正常运行了,但本人较懒,且不喜欢cmd黑色窗口,因此借助hidecmd.exe实现一键后台启动

主运行bat代码

for /l %%i in (8000,1,8003) do (start hidecmd.exe run.bat %%i)

run.bat代码

python serv.py --port=%1

 前提是hidecmd.exe文件也位于根目录下。

最后

以上就是危机哈密瓜为你收集整理的windows下Nginx+tornado部署Django的全部内容,希望文章能够帮你解决windows下Nginx+tornado部署Django所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部