Я купил VPS для своего приложения django. Я никогда раньше не развертывал django или любое другое приложение. Я прочитал несколько руководств о том, как развернуть django с помощью apache и wsgi, а также некоторые другие варианты gunicorn, ngix. Мне все это кажется очень разочаровывающим и трудным для понимания. Мне было интересно, что произойдет, если я разверну свое приложение, изменив отладку на false, создав базу данных, подключив ее, а затем просто запустив python manage.py runserver my-ip. Это плохая практика?
Развертывание django с помощью python manage.py runserver для производства на VPS
Ответы (2)
Научиться развертывать проект Django легко.
Сначала вы должны знать, как установить Apache
и mod_wsgi
если вы используете Ubuntu
sudo apt-get install apache2 libapache2-mod-wsgi
или Fedora
(красная шапка) (без теста)
yum install httpd mod_wsgi
Тогда вы должны знать, как связать Apache2 с вашим проектом Django.
<VirtualHost *:80>
ServerName example.com
ServerAdmin [email protected]
Alias /media/ /home/tu/blog/media/
<Directory /home/tu/blog/media>
Require all granted
</Directory>
WSGIScriptAlias / /home/tu/blog/blog/wsgi.py
<Directory /path/to/django/project/wsgifile>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Предложение WSGIScriptAlias
связывает конфигурацию Apache2 с вашим проектом Django в файле wsgi.py
Django, вы увидите project.settings
включенным, вот как это работает.
Следующее может быть легко понять, как это работает
*.conf --> wsgi.py --> settings.py --> urls.py и приложения
просто поищите в Google, например ubuntu django server mod_wsgi
, и изучите сами!
Не используйте сервер разработки в производстве. Просто не надо.
По крайней мере, подавайте его с пушкикорна:
$ pip install gunicorn
$ cd your_project
$ gunicorn project.wsgi # gunicorn now runs locally on port 8000
И используйте nginx (или apache) в качестве обратного прокси:
server {
location / {
proxy_pass http://127.0.0.1:8000;
}
}
Развертывание Django (как и любого другого приложения) — это целый мир сам по себе, и его освоение требует времени. Но никогда не запускайте сервер разработки в продакшене.