Обеспечение развертывания 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 для доступа к вашему приложению, подумайте о добавлении некоторых правил брандмауэра, чтобы ограничить доступ к приложению.

  • Откуда эта работа cron работает?
  • Linux HA Cluster: запуск ресурса как пользователя без полномочий root
  • Подkeyение serverа к двум различным восходящим коммутаторам
  • Не удалось установить определенную версию apache2
  • Решение Failsafe VPN?
  • Управление пользователями с помощью cronjob
  • Можно ли использовать устройство переkeyения OpenVPN и иметь задержку менее 100 мс?
  • Двунаправленная synchronization directoryа на CentOS между двумя serverами
  • Выдача certificateа SSL с использованием git на pfsense
  • Файлы Bash с Github
  • Где моя memory продолжалась в Linux (без кеша / slab / shm / ipcs)
  • Interesting Posts

    Два RAID-controllerа на одном serverе HP ML350 G4

    Вы пропускаете стойку между серверами?

    tomcat6 on centos 5.5 не останавливается

    apache не перезагрузится … произошло неожиданно: /

    Как серверы с избыточным источником питания потребляют энергию?

    Что такое узкое место моего nginx + php?

    Как возможно, что я могу выполнить search хоста, но не curl?

    Как предоставить права запуска / остановки / перезапуска для службы произвольному пользователю или группе на сервере, не являющемся доменом?

    Как настроить Perfmon / Logman для получения счетчиков производительности Thread только для определенного processа IIS?

    Рецепты Procmail для приема номеров в теме

    как установить открытое приложение запуска с помощью групповой политики для протокола callTo

    Проблемы совместимости Perl при установке Git на EC2

    Постерифический домен «Белый list» в сочетании с аутентификацией отправителя

    Проблемы с SSRS и IIS

    Кэш-file с несколькими кероберами для одного пользователя