Назад | Перейти на главную страницу

Развертывание приложения Django на виртуальном сервере Ubuntu

У меня есть виртуальная машина под управлением Ubuntu Server 10.04LTS. Я намерен сделать так, чтобы эта машина работала как VPS, чтобы я мог учиться и готовиться к тому, когда я получу услугу VPS.

Apache + mod_wsgi для развертывания приложения Django кажется мне правильным выбором.

У меня есть домен (marianofalcon.com.ar), но больше ничего, DNS.

Проблема в том, что я потерял все, что связано с развертыванием. Я знаю, как настроить mod_wsgi (с помощью файла django.wsgi) и apache (создание VirtualHost).

Чего-то не хватает, и я не знаю, что именно. Я думаю, что мне не хватает сетевых навыков, и это большая проблема. Попытка разместить приложение на виртуальном ящике добавляет некоторые трудности, потому что я не знаю, какой IP использовать.

Вот что у меня есть:

файл, расположенный по адресу: / etc / apache2 / sites-available:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@my-domain.com
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 или что-то локальное, чтобы заменить его, если вы остаетесь в локальной сети.
Не уверен, как устроена ваша сеть (по крайней мере, между хостом и виртуальной машиной), но было бы проще разместить виртуальную машину в той же сети, что и ваш компьютер (с мостом, а не с NAT). Теперь вы можете использовать /etc/hosts файл на виртуальной машине, чтобы сделать его доступным:

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

Например. Если у вас есть общедоступный IP-адрес и вы хотите, чтобы он был доступен извне (настоящая настройка), используйте свое зарегистрированное доменное имя, но вам необходимо определить для него как минимум 2 DNS-сервера (на http://www.nic.ar) и на самом деле 2 DNS разрешают ваш IP. Существуют бесплатные DNS-серверы или, поскольку у вас уже есть сервер ubuntu, вы можете установить на нем DNS-сервер, для доступа к одному сайту это просто (и полезно знать! :)).

OBS: чтобы ответить, когда вы сказали, что из-за того, что это виртуальная машина, вы не уверены, какой IP-адрес использовать: виртуальная машина или нет, это сервер, поэтому вы определяете и фиксируете ее IP (файл хостов и /etc/network/interfaces или используйте свой DHCP, чтобы всегда давать ему один и тот же IP-адрес), чтобы вы (и сеть :)) всегда знали, как до него добраться.