표준 개발 환경을 사용하여 로컬로 실행할 수있는 django 앱이 있습니다. 이제 생산을 위해 이것을 EC2로 옮기고 싶습니다. django 문서는 apache 및 mod_wsgi로 실행하고 정적 파일을로드하기 위해 nginx를 사용하도록 제안합니다.
Ec2 상자에서 Ubuntu 12.04를 실행 중입니다. 내 Django 앱 "ddt"에는 ddt.wsgi가있는 하위 디렉토리 "apache"가 있습니다.
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()
apt에서 mod_wsgi를 설치했습니다. 내 아파치 /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 / 사이트 사용 가능
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/;
}
}
이 두 파일이 올 바르면 HTTP 포트 80에서 요청을 받도록 nginx를 설정해야하지만 포트 8080에서 django 앱을 실행하는 아파치로 요청을 보내야합니다. mysite.com으로 이동하면 Nginx에 오신 것을 환영합니다 !
이것을 디버깅하는 방법에 대한 조언이 있습니까?