如何在Amazon EC2托管中设置Django网站?

时间:2009-10-28 17:20:05

标签: django hosting amazon-ec2

有人可以通过使用Amazon EC2托管服务为如何实现托管基于Django的网站提供具体步骤吗?

这可能吗?

我的网站源代码可以找到here

我骂了一眼,找到了这个article

但在做任何事情之前,我只想获得一些关于Amazon EC2托管的基本想法。

4 个答案:

答案 0 :(得分:31)

这当然是可能的,但听起来EC2不是最适合你的选择。对于这样做的人的例子,谷歌搜索“django ec2”并查看第一和第二个链接。链接,如thisthis(已编辑,因为此问题现在是该查询的热门google结果!)

在一个非常简单的意义上,EC2只是一个可以按小时租用的服务器。你可以让它运行Windows或Linux,然后像往常一样安装python和django。事实上,可能有一个已经预先配置了django的图像。您的项目处于什么阶段?只是研究,或者你是否已经陷入与django或ec2的特定问题?

<强>更新 好吧,我觉得你很困惑的是那里有各种不同类型的托管。在一个极端,你可以支付你自己的物理服务器,安装自己的操作系统(如Windows或Linux),安装自己的python,你自己的web服务器,如apache或IIS,你自己的django库,你自己的数据库(如mysql)等,然后上传您的网站。在另一个极端,您可以在共享主机服务上支付帐户,其他人已经完成了操作系统,python,Web服务器等的所有设置,您需要做的就是上传您的网站代码。 EC2更接近第一个极端,对你来说可能有点过分。我认为在您的情况下,您应该寻找更有管理的解决方案 我会查看这个网页,其中列出了一堆不同的django托管公司: Django hosting

答案 1 :(得分:8)

如果您不想从头开始设置服务器,另一个选择就是使用BitNami Django Stack Amazon image。我是一名BitNami开发人员,他致力于为多个Python应用程序创建堆栈。 BitNami Django Stack已经包含MySQL 5.1,Apache 2.2(带有mod_wsgi)和安装了MarkDown,html5lib和python-openid的Python。它还包括django 1.3。

您需要安装Django Debug Toolbar,创建数据库并将文件复制到/ opt / bitnami / apps / django / django_projects并运行python manage.py命令。之后,如果要在生产中使用(而不是django服务器),则需要为项目服务器配置apache。

在尝试直接在云中部署应用程序之前,您可以使用本机安装程序并在本地计算机上测试部署。

我们还有cost estimation tool。这只是为了简单介绍一个简单的EC2 / EBS设置,亚马逊并不总是像你期望的那样昂贵,尽管它取决于很多因素。 (虽然根据你的意见,你似乎已经看过了费用)。

答案 2 :(得分:2)

假设您在实例上使用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>

答案 3 :(得分:2)

我在AWS EC2 t2.micro实例(AWS免费套餐)上托管了我自己的django网站。我将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

  4. (如果你没有安装pip:sudo apt-get install python-pip

    1. 为您的django项目配置mysql。将您的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

    5. 我希望您没有在settings.py中对模板和静态路径进行硬编码,如果是,则将其更改为动态路径,或者相应地进行编辑。

      就是这样! 访问您的公共IP或DNS以访问AWS EC2实例上托管的Django网站。

      如果您收到任何错误,请在下方发表评论。