Подтвердить что ты не робот

Как настроить веб-сайт Django на хостинге Amazon EC2?

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

Это возможно?

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

Я искал и нашел эту статью.

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

4b9b3361

Ответ 1

Это, конечно, возможно, но похоже, что EC2 - не лучший вариант для вас. Для примеров людей, делающих это, посмотрите, например, это или это.

В очень упрощенном смысле EC2 - это просто сервер, который вы можете арендовать по часам. Вы можете запустить Windows или Linux, а затем установить Python и Django, как обычно. На самом деле, возможно, есть изображение, на котором уже настроен Django.

Вы должны понимать, что существуют различные типы хостинга. С одной стороны, вы можете заплатить за свой собственный физический сервер, установить собственную операционную систему (например, Windows или Linux), установить собственный Python, свой собственный веб-сервер, такой как Apache или IIS, свои собственные библиотеки Django, свою собственную базу данных (например, MySQL) и т.д., А затем загрузите на него свой веб-сайт. С другой стороны, вы можете заплатить за учетную запись в службе общего хостинга, где кто-то еще выполнил все настройки ОС, Python, веб-сервера и т.д., И все, что вам нужно сделать, это загрузить код вашего веб-сайта. EC2 намного ближе к первому экстремуму и, вероятно, для вас излишне. Я думаю, что в вашем случае вы должны искать более управляемое решение.
Я хотел бы проверить эту веб-страницу, где перечислены различные хостинговые компании Django: хостинг Django

Ответ 2

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

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

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

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

Ответ 3

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

Отредактируйте и добавьте следующий код в /etc/apache 2/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>

Ответ 4

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

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

    sudo apt-get install apache2 libapache2-mod-wsgi

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

    sudo pip install django

  • Установите 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. Запустить миграцию для синхронизации db:

    python manage.py migrate

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

    sudo service apache2 reload

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

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

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