Implantando um aplicativo Django em um servidor virtual Ubuntu

3

Eu tenho uma máquina virtual com Ubuntu Server 10.04LTS. Minha intenção é que esta máquina funcione como um VPS, assim eu posso aprender e me preparar para quando eu obtiver um serviço VPS.

Apache + mod_wsgi para implantar o aplicativo Django parece a escolha certa para mim.

Eu tenho o domínio (marianofalcon.com.ar) mas nada mais, nenhum DNS.

O problema é que estou bastante perdido com todo o material de implantação. Eu sei como configurar o mod_wsgi (com o arquivo django.wsgi) e o apache (criando um VirtualHost).

Algo está faltando e não sei o que é. Eu acho que eu não tenho habilidades em rede e esse é o grande problema. Tentar hospedar o aplicativo em uma caixa virtual acrescenta alguma dificuldade, porque eu não sei bem qual IP usar.

Isso é o que eu tenho:

arquivo colocado em: / 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>

arquivo 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()
    
por mfsaint 27.07.2010 / 18:10

1 resposta

1

Sim, você precisa de DNS ou algo local para substituí-lo se você permanecer na LAN.
Não tenho certeza de como está sua rede (pelo menos entre o host e a VM), mas seria mais fácil ter sua VM na mesma rede que você faz a máquina (em ponte, não em NAT). Agora você pode usar o arquivo /etc/hosts na VM para torná-lo acessível:

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

Por exemplo. Se você tem um IP público e deseja que isso seja alcançado de fora (uma configuração real), use seu nome de domínio registrado, mas precisará definir pelo menos dois servidores DNS para ele (em http://www.nic.ar ) e realmente ter o 2 DNS resolvendo seu IP. Há servidores DNS gratuitos ou como você já tem um servidor Ubuntu, você pode instalar um servidor DNS nele, para um único acesso ao site é fácil (e bom saber!).

OBS: para responder quando você disse que por ser uma VM você não tem certeza de qual IP usar: VM ou não, é um servidor, então você define e corrige seu IP (arquivo hosts e /etc/network/interfaces ou use seu DHCP para fornecer sempre o mesmo IP) para que você (e a rede :) sempre saiba como alcançá-lo.

    
por 01.08.2010 / 22:02