Обеспечение развертывания Django на serverе Ubuntu

Я только начинаю с Django и хочу развернуть тестовое приложение на Linux VPS, которое у меня есть. Я не знаком с тем, как я могу обеспечить deployment. Если я настрою Apache для обслуживания приложения из directoryа моих проектов в / home, я верю, что есть область, в которой кто-то со злым умыслом может get доступ ко всему моему дому.

Я думал о создании другого пользователя. Есть ли лучший вариант?

Спасибо Хари

4 Solutions collect form web for “Обеспечение развертывания Django на serverе Ubuntu”

Проекты Django не предназначены для размещения в корне документа. Поместите его под /srv и укажите WSGIScriptAlias соответственно.

Лучшей практикой безопасности для развертывания Django является использование одного пользователя для каждого «websiteа», это легко сделать с mod_wsgi для каждого виртуального хоста, у вас есть что-то вроде этого:

 <IfModule mod_wsgi.c>
     WSGIDaemonProcess mydeploygroup user = _myuser group = _mygroup threads = 25
     WSGIProcessGroup mydeploygroup
     WSGIScriptAlias ​​/ /srv/vhosts/www.example.org/apps/myapp/wsgi/deployment.wsgi
 </ IfModule>

Это хорошая практика для того, чтобы ваши .py fileы были доступны только для чтения, доступные только от этого конкретного пользователя. Таким образом, если злоумышленник может загружать произвольные fileы, разрешения не позволяют ему модифицировать существующий код Python и бэкдор.

Существует также function chroot, но я ее никогда не тестировал. Кто-нибудь имеет обратную связь?

В DocumentRoot вам вообще ничего не нужно. Ваш WSGIScriptAlias ​​должен указывать на wsgi-file, который может быть в любом месте, с которого могут считывать данные www-данные пользователя. Wsgi-file, в свою queue, указывает на ваш Django-проект, который также может быть в любом месте, с которого могут считываться данные www.

Кажется, не существует каких-либо официальных правил о том, как настроить вашу структуру. Лично у меня есть все мои проекты в подпапках для / var / www.

Если вам не нужен весь интерless для доступа к вашему приложению, подумайте о добавлении некоторых правил брандмауэра, чтобы ограничить доступ к приложению.

  • Если я выkeyу экземпляр Amazon EC2, тогда запустите его снова, все будет в порядке?
  • Изоляция виртуальных хостов Apache с использованием контейнера linux
  • Настройка Perl DBI и DBD в Linux
  • Настройка настройки iptables между двумя interfaceами Ethernet
  • Объяснение для ошибки ядра - Eeeek! page_mapcount пошел отрицательно
  • Маршрутизация между двумя подсетями, используя Hamachi в качестве ссылки
  • Как отобразить определенные строки из textового fileа в Linux?
  • Принтер в OS X не печатает через подсети VPN
  • Маршрутизация между двумя подсетями с использованием Linux-блока с двумя сетевыми адаптерами
  • Как мне заставить Jenkins работать в Linux для связи с serverами Windows?
  • Debian Etch и ESXi медленные скорости сети
  • Interesting Posts

    Какие учетные записи пользователей необходимы на ПК controllerа домена?

    Какие промежуточные certificateы необходимы (Apache)?

    DMVPN и OSPF (две туннели динамической маршрутизации)

    SSH-туннель для 3-х переходов и копирования fileов

    IPTables Несколько источников или rangeы IP-адресов назначения?

    Как заставить sendmail использовать SMTP вместо внутреннего реле?

    Разрешение «Полный доступ» не разрешает доступ к OWA

    Как определить, почему SQL Server 08 прекратил работу

    Восстановление базы данных до момента, когда она не работает

    Виртуальное устройство pfSense для VMWare Host

    Bot Engine Engine – Большое количество обращений

    Ограничения с репликацией Hyper-v на Windows Server 2012 при размещении Windows 2008 R2?

    Невозможно resize основного раздела (CentOS 6.4 x86_x64) Google Cloud Compute

    OpenLDAP: частичная synchronization cn = config

    RAID-6: лучше replace два мертвых диска одновременно или по одному?