Eu tenho um aplicativo django que pode ser executado localmente usando o ambiente de desenvolvimento padrão. Agora quero passar isso para o EC2 para produção. A documentação do django sugere rodar com apache e mod_wsgi e usar o nginx para carregar arquivos estáticos.
Estou executando o Ubuntu 12.04 em uma caixa Ec2. Meu aplicativo Django, "ddt", contém um subdiretório "apache" com ddt.wsgi
import os, sys
apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('/usr/lib/python2.7/site-packages/django/')
sys.path.append('/home/jeffrey/www/ddt/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ddt.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Eu tenho o mod_wsgi instalado no apt. Meu apache / httpd.conf contém
NameVirtualHost *:8080
WSGIScriptAlias / /home/jeffrey/www/ddt/apache/ddt.wsgi
WSGIPythonPath /home/jeffrey/www/ddt
<Directory /home/jeffrey/www/ddt/apache/>
<Files ddt.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>
Em apache2 / sites-enabled
<VirtualHost *:8080>
ServerName www.mysite.com
ServerAlias mysite.com
<Directory /home/jeffrey/www/ddt/apache/>
Order deny,allow
Allow from all
</Directory>
LogLevel warn
ErrorLog /home/jeffrey/www/ddt/logs/apache_error.log
CustomLog /home/jeffrey/www/ddt/logs/apache_access.log combined
WSGIDaemonProcess datadriventrading.com user=www-data group=www-data threads=25
WSGIProcessGroup datadriventrading.com
WSGIScriptAlias / /home/jeffrey/www/ddt/apache/ddt.wsgi
</VirtualHost>
Se estiver correto, esses 3 arquivos acima deverão permitir corretamente que meu aplicativo django seja executado na porta 8080 .
Eu tenho o seguinte arquivo nginx / proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
Em nginx / ativado por sites
server {
listen 80;
server_name www.mysite.com mysite.com;
access_log /home/jeffrey/www/ddt/logs/nginx_access.log;
error_log /home/jeffrey/www/ddt/logs/nginx_error.log;
location / {
proxy_pass http://127.0.0.1:8080;
include /etc/nginx/proxy.conf;
}
location /media/ {
root /home/jeffrey/www/ddt/;
}
}
Se eu estiver correto, esses dois arquivos deverão configurar o nginx para receber solicitações na porta HTTP 80, mas, em seguida, direcionar solicitações para o apache que está executando o aplicativo django na porta 8080. Se eu for para mysite.com, tudo o que vejo é Bem-vindo ao Nginx !
Algum conselho sobre como depurar isso?
fonte
Respostas:
observe que você deve usar www.mysite.com ou mysite.com em suas solicitações (conforme definido no arquivo de configuração):
mas parece: Você está solicitando site por host local ou por endereço IP
fonte
Antes de tudo, verifique se você pode acessar seu aplicativo em 127.0.0.1:8080 e publique o conteúdo de nginx_error.log. Tente Copiar e colar após o arquivo conf nginx e verifique se está funcionando. Estou usando a mesma configuração para o meu aplicativo python.
fonte
Na sua configuração do NGINX, você incluiu o caminho para o arquivo conf (
/etc/nginx/proxy.conf
) dentro de alocation
. Eu acredito que ele pertence lá fora .fonte
Em primeiro lugar, por favor, pelo amor de tudo que é sagrado, não use nginx e httpd. Isso vai ser um pé no saco para depurar.
Em segundo lugar, em nenhum lugar dos documentos vi que eles recomendam esse tipo de configuração.
Use apache ou nginx, isso eliminará metade dos seus problemas.
Verifique também o seu nginx.conf se não estiver incluindo arquivos de outros diretórios, que podem ter um vhost global que substitui o seu.
Você também deve editar sua postagem para remover o domínio na configuração do apache perto dos parâmetros WSGI, pois atualmente está vazando sua configuração de produção.
Remova outros sites dos sites habilitados.
fonte