Как настроить сайт Django на хостинге Amazon EC2? - PullRequest
46 голосов
/ 28 октября 2009

Может ли кто-нибудь дать конкретные инструкции по реализации хостинга веб-сайта на основе Django с помощью хостинга Amazon EC2?

Возможно ли это?

Исходный код моего сайта можно найти здесь

Я обиделся и нашел эту статью

Но прежде чем что-то делать, я просто хочу получить некоторые базовые идеи о хостинге Amazon EC2.

Ответы [ 4 ]

31 голосов
/ 28 октября 2009

Это, конечно, возможно, но похоже, что EC2 - не лучший вариант для вас. Для примеров людей, делающих это, поищите в Google «django ec2» и просмотрите первую и вторую ссылки . ссылки типа this или this (отредактировано потому, что этот вопрос теперь лучший результат Google для этого запроса!)

В очень упрощенном смысле EC2 - это просто сервер, который вы можете арендовать по часам. Вы можете запустить Windows или Linux, а затем установить Python и Django, как обычно. На самом деле, вероятно, есть изображение, которое уже было предварительно сконфигурировано в django. На какой стадии вашего проекта вы находитесь? Просто исследуете, или вы застряли на конкретной проблеме с django или ec2?

UPDATE: Хорошо, я думаю, что вас смущает то, что существуют различные типы хостинга. С одной стороны, вы можете заплатить за свой собственный физический сервер, установить собственную операционную систему (например, windows или linux), установить собственный python, свой собственный веб-сервер, такой как apache или IIS, свои собственные библиотеки django, свою собственную базу данных (например, mysql) и т. д., а затем загрузите на него свой веб-сайт. С другой стороны, вы можете заплатить за учетную запись в службе общего хостинга, где кто-то еще выполнил все настройки ОС, питона, веб-сервера и т. Д., И все, что вам нужно сделать, это загрузить код вашего веб-сайта. EC2 намного ближе к первому экстремуму и, вероятно, для вас излишне. Я думаю, что в вашем случае вы должны искать более управляемое решение.
Я хотел бы проверить эту веб-страницу, где перечислены различные хостинговые компании django: Джанго хостинг

8 голосов
/ 14 ноября 2011

Еще один вариант, если вы не хотите заниматься настройкой сервера с нуля, - это использовать BitNami Django Stack образ Amazon . Я разработчик BitNami и работал над созданием стеков для нескольких приложений Python. В стек BitNami Django уже включены MySQL 5.1, Apache 2.2 (с mod_wsgi) и Python с установленными MarkDown, html5lib и python-openid. Также включен django 1.3.

Вам необходимо установить Django Debug Toolbar, создать базу данных и скопировать ваши файлы в / opt / bitnami / apps / django / django_projects и запустить команды python manage.py. После этого вам нужно будет настроить apache для сервера вашего проекта, если вы хотите использовать его в производстве (вместо сервера django).

Прежде чем пытаться развернуть приложение непосредственно в облаке, вы можете использовать собственные установщики и протестировать развертывание на локальном компьютере.

У нас также есть инструмент оценки стоимости . Это просто для того, чтобы получить общее представление о простой настройке EC2 / EBS, Amazon не всегда настолько дорог, как вы можете ожидать, хотя это зависит от множества факторов. (Хотя по вашим комментариям кажется, что вы уже взглянули на расходы).

2 голосов
/ 25 июня 2016

Я разместил свой собственный сайт django на экземпляре AWS EC2 t2.micro (бесплатный уровень AWS). Я использовал Django 1.9 для этого проекта и MySQL в качестве базы данных. Создайте SSH-туннель к вашему экземпляру и выполните шаги:

  1. Установите apache2 и libapache2-mod-wsgi на свой экземпляр:

    sudo apt-get install apache2 libapache2-mod-wsgi

  2. Установите django на свой экземпляр:

    sudo pip install django

  3. Установить mysql:

    sudo apt-get install mysqldb

    sudo pip install mysql-python

    sudo apt-get install libmysqlclient-dev

(если у вас не установлен пипс: sudo apt-get install python-pip)

  1. Настройте mysql для вашего проекта django. Импортируйте ваш проект django в /var/www/html. (лучше использовать git).

  2. Редактировать /etc/apache2/sites-available/000-default.conf:

    <VirtualHost *:80>
        Alias /static /path_to_my_static_folder
    
        <Directory /path_to_my_project_folder_containing_wsgi.py>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
    
        WSGIDaemonProcess project_name python-path=/path_to/lib/python2.7/site-packages
    
        WSGIProcessGroup project_name
        WSGIScriptAlias / /path_to_wsgi.py
    </VirtualHost>
    
  3. Запустить миграцию для синхронизации БД:

    python manage.py migrate

  4. Перезапустите apache2:

    sudo service apache2 reload

Я надеюсь, что вы не жестко закодировали свой шаблон и статические пути в settings.py, если да, то измените его на динамический путь или измените его соответствующим образом.

Вот и все! Посетите ваш общедоступный IP-адрес или DNS, чтобы получить доступ к веб-сайту Django, размещенному на экземпляре AWS EC2.

Пожалуйста, прокомментируйте ниже, если вы получите какую-либо ошибку.

2 голосов
/ 30 октября 2013

Предположим, что вы используете сервер Apache в вашем экземпляре, официальная инструкция на сайте Django работает лучше, чем множество постов в блоге. Вот что я скопировал по ссылке: https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/

Отредактируйте и добавьте следующий код в /etc/apache2/apache2.conf.

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...