У меня есть приложение Django, которое может работать локально с использованием стандартной среды разработки. Теперь я хочу перенести это в EC2 для производства. Документация django предлагает работать с apache и mod_wsgi и использовать nginx для загрузки статических файлов.
Я использую Ubuntu 12.04 на коробке Ec2. Мое приложение Django, "ddt", содержит подкаталог "apache" с 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()
У меня установлен mod_wsgi из apt. Мой apache / httpd.conf содержит
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>
Под 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>
Если я прав, эти 3 файла выше должны правильно разрешить моему приложению django работать на порте 8080 .
У меня есть следующий файл 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;
Под nginx / sites-enabled
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/;
}
}
Если я прав, эти два файла должны настроить nginx для приема запросов через порт 80 HTTP, а затем направить запросы в apache, на котором запущено приложение django через порт 8080. Если я захожу на mysite.com, все, что я вижу, это Добро пожаловать в Nginx !
Любой совет, как отладить это?
источник
Ответы:
Пожалуйста , обратите внимание, что вы должны использовать www.mysite.com или mysite.com в запросах (как это определено в конфигурационном файле):
но, похоже, вы запрашиваете сайт по localhost или по IP-адресу
источник
Прежде всего, пожалуйста, убедитесь, что вы можете получить доступ к своему приложению на 127.0.0.1:8080 и, пожалуйста, опубликуйте содержимое nginx_error.log. Попробуйте скопировать вставку после файла конфигурации nginx и убедитесь, что он работает. Я использую тот же конфиг для моего приложения на Python.
источник
В вашей конфигурации NGINX вы указали путь к файлу conf (
/etc/nginx/proxy.conf
) внутри alocation
. Я считаю, что это принадлежит снаружи .источник
Во-первых, пожалуйста, ради любви ко всему святому, не используйте ни nginx, ни httpd. Это будет болью в заднице для отладки.
Во-вторых, нигде в документации я не видел, чтобы они рекомендовали такую настройку.
Используйте apache или nginx, это устранит половину ваших проблем.
Также проверьте ваш nginx.conf, если он не включает файлы из других каталогов, которые могут иметь глобальный vhost, который переопределяет ваш.
Вам также следует отредактировать ваше сообщение, чтобы удалить домен в конфигурации apache рядом с параметрами WSGI, поскольку в данный момент вы производите утечку своих производственных настроек.
Удалить другие сайты с включенных сайтов.
источник