Развертывание приложения socketio Django с помощью gunicorn и Nginx
Я использую Django для своего приложения и библиотеку socketio она работает достаточно хорошо, но у меня есть несколько вопросов и проблем. Я хочу знать, что является лучшим способом развернуть это приложение, используя Nginx и gunicorn с eventlet.
wsgi.py
import os
import socketio
import eventlet
import eventlet.wsgi
from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
from sioapp.views import sio
application = get_wsgi_application()
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ESIProject.settings')
django_app = StaticFilesHandler(application)
application = socketio.Middleware(sio, wsgi_app=django_app, socketio_path='socket.io')
eventlet.wsgi.server(eventlet.listen(('0.0.0.0', 5100)), application)
Первый вопрос: Я получаю множество данных от датчиков, готовых к работе каждую секунду с моего Raspberry Pi, и я потребляю довольно много данных, но не уверен, следует ли мне использовать асинхронные функции или просто использовать обычные функции?
Второй вопрос: Когда я запускаю свое приложение django локально с помощью manage.py, я вижу два адреса и не уверен, что порт 8000 перекрывается портом 5100. пожалуйста, объясните это ниже.
Django version 4.0.2, using settings 'ESIProject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
(9320) wsgi starting up on http://0.0.0.0:5100
Третий вопрос: Я также использую React в качестве клиента (socket.io-client) для моего Front-end приложения, но не уверен, что это должно быть реализовано в Nginx.
У меня в голове много всего происходит, и я хочу знать правильный способ развертывания этого приложения, поскольку существует не так много источников по развертыванию socketio приложения с django.