windows下Nginx+tornado部署Django

来源:互联网 发布:3g和4g网络的区别大吗 编辑:程序博客网 时间:2024/06/05 18:50

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:\PythonProject\django_web;            if ($query_string) {                expires max;            }        }        location ^~ /media/ {            root D:\PythonProject\django_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:\PythonProject\django\web\Scripts\activate.bat")

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

python setup.py install

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

#/usr/bin/env pythonfrom tornado.options import options, define, parse_command_linefrom django.core.wsgi import get_wsgi_applicationimport tornado.httpserverimport tornado.ioloopimport tornado.webimport tornado.wsgiimport os, sysSITE_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文件也位于根目录下。

1 0