在虚拟Ubuntu服务器中部署Django应用程序

我有一台运行Ubuntu Server 10.04LTS的虚拟机。 我的意图是这台机器像一个VPS一样工作,这样我就可以学习和准备当我得到一个VPS服务。

用于部署Django应用程序的Apache + mod_wsgi似乎是我的正确select。

我有域名(marianofalcon.com.ar),但没有别的,没有DNS。

问题是,我所有的部署东西都迷失了方向。 我知道如何configurationmod_wsgi(带有django.wsgi文件)和apache(创build一个VirtualHost)。

有东西丢失,我不知道它是什么。 我认为我缺乏networking技能,这是最大的问题。 尝试在虚拟机上托pipe应用程序会增加一些难度,因为我不太清楚要使用哪个IP。

这是我得到的:

文件放置在:/ etc / apache2 / sites-available:

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] ServerName www.my-domain.com ServerAlias my-domain.com Alias /media /path/to/my/project/media DocumentRoot /path/to/my/project WSGIScriptAlias / /path/to/your/project/apache/django.wsgi ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost> 

django.wsgi文件:

 import os, sys wsgi_dir = os.path.abspath(os.path.dirname(__file__)) project_dir = os.path.dirname(wsgi_dir) sys.path.append(project_dir) project_settings = os.path.join(project_dir,'settings') os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 

是的,如果你留在局域网内,你需要DNS或者本地的东西来代替它。
不知道你的networking怎么样(至less在主机和虚拟机之间),但是如果你的虚拟机和你的机器在同一个networking(桥接,不是NAT),会更容易。 现在,您可以使用VM上的/etc/hosts文件使其可访问:

 127.0.0.1 localhost.localdomain localhost 192.168.xxx.xxx www.my-domain.local www 

例如。 如果您有公共IP,并希望从外部访问(真实设置),请使用您的注册域名,但您需要为其定义至less2个DNS服务器(位于http://www.nic.ar )而实际上有2个DNSparsing你的IP。 有免费的DNS服务器,或者你已经有一个Ubuntu服务器上,你可以安装一个DNS服务器,为一个单一的网站访问它很容易(和知道!:))。

OBS:当你说因为它是一个虚拟机,你不知道要使用什么IP:虚拟机或不虚拟,它是一个服务器,所以你定义和修复其IP(hosts文件和/etc/network/interfaces或使用你的DHCP给它总是相同的IP),所以你(和networking:))将永远知道如何达到它。