Создайте новый проект Django:
django-admin.py startproject testserver
В папку проекта testserver добавьте файл django_tornado.py, имеющий следующий код:
# -*- coding: utf-8 -*-
import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import sys
import django.core.handlers.wsgi
sys.path.append('C:/django')
def main():
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
application = django.core.handlers.wsgi.WSGIHandler()
container = tornado.wsgi.WSGIContainer(application)
http_server = tornado.httpserver.HTTPServer(container)
http_server.listen(8001, "127.0.0.1")
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
После этого запустите файл django_tornado.py из консоли.
Перейдите в браузере по адресу http://127.0.0.1:8001/
В результате вы увидите стартовую страницу Django.
Для того, чтобы проксировать Nginx --> Tornado --> Django в конфиге Nginx в файле nginx.conf из папки conf пропишите следующие настройки:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
После этого запустите сервер Nginx и файл django_tornado.py
В браузере перейдите по адресу http://localhost/
В результате вы увидите стартовую страницу Django, но в этот раз она будет загружена через связку Nginx --> Tornado --> Django.
Для загрузки статичных файлов, таких как: css, javascript, images через Nginx изменим конфиг в файле nginx.conf следующим образом:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Real-IP $remote_addr;
}
location /static/ {
alias C:/django/testserver/static/;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
В результате Django сможет загружать файлы css, javascript, images из папки C:\django\testserver\static через сервер Nginx.
Комментариев нет:
Отправить комментарий