Saya memiliki aplikasi Django yang dapat berjalan secara lokal menggunakan lingkungan pengembangan standar. Saya ingin sekarang memindahkan ini ke EC2 untuk produksi. Dokumentasi Django menyarankan berjalan dengan apache dan mod_wsgi, dan menggunakan nginx untuk memuat file statis.
Saya menjalankan Ubuntu 12,04 pada kotak Ec2. Aplikasi Django saya, "ddt", berisi subdirektori "apache" dengan 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()
Saya telah menginstal mod_wsgi dari apt. Apache / httpd.conf saya berisi
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>
Di bawah apache2 / situs-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>
Jika saya benar, 3 file di atas ini seharusnya memungkinkan aplikasi Django saya berjalan di port 8080 .
Saya memiliki file nginx / proxy.conf berikut
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;
Di bawah nginx / situs-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/;
}
}
Jika saya benar kedua file ini harus mengatur nginx untuk mengambil permintaan pada port HTTP 80, tetapi kemudian mengarahkan permintaan ke apache yang menjalankan aplikasi django pada port 8080. Jika saya pergi ke mysite.com, yang saya lihat adalah Selamat datang di Nginx !
Ada saran untuk cara men-debug ini?