У меня есть виртуальная машина под управлением 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-адрес), чтобы вы (и сеть :)) всегда знали, как до него добраться.