2013-10-26 63 views
0

如果我訪問: myapp.com(它的工作原理)EC2 Django應用程序只能訪問沒有www。前綴

如果我訪問: www.myapp.com(拋出HTTP 500錯誤) 或 完全合格的版本:http://www.myapp.com(拋出HTTP 500錯誤)

是HTTP 500錯誤是:

xx.xx.xxx.xxx - - [26/Oct/2013:18:33:10 +0000] "GET/HTTP/1.1" 500 460 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" 

我收到此錯誤,從我access.log作爲我的nginx的配置的一部分(注意error.log中有什麼新):

server { 
     #listen  8001; 
     listen  80; 
     #listen 127.0.0.1; 
     server_name  myapp.com www.myapp.com;    #*.myapp.com; 
     #server_name ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com; 
     access_log /home/ubuntu/virtualenv/myapp/error/access.log; 
     error_log /home/ubuntu/virtualenv/myapp/error/error.log warn; 
     connection_pool_size 2048; 

     fastcgi_buffer_size 4K; 
     fastcgi_buffers 64 4k; 

     root /home/ubuntu/virtualenv/myapp/homelaunch/; 

     location /static/ { 
      alias /home/ubuntu/virtualenv/myapp/homelaunch/static/; 
      #alias /static/; 
      #root /home/ubuntu/virtualenv/myapp/homelaunch/; 
     } 

     location/{ 
      proxy_pass http://127.0.0.1:8001; 
      proxy_set_header Host $host; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      #proxy_set_header X-Forwarded-Host $server_name; 
      #proxy_set_header X-Real-IP $remote_addr; 
      add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
     } 
    } 

EC2安全策略樣子: img

我在做什麼錯在這裏?

謝謝!

+0

Django日誌說什麼?你有沒有檢查['ALLOWED_HOSTS'](https://docs.djangoproject.com/en/1.5/ref/settings/)設置? – Steve

+0

是ALLOWED_HOSTs我試過硬編碼,例如:.myapp.com,http://www.myapp.com,www.myapp.com作爲值。我也曾嘗試* .myapp.com。但它不允許它 – CodeTalk

+0

不解決它** – CodeTalk

回答

0

這似乎沒有與任何設置有問題,它更是與settings.py的問題,並沒有被應用從settings.py的設置,因爲我沒有:

1)停止Gunicorn和停止Nginx的第一 2)然後開始他們再次使用類似正確的命令:

sudo /usr/local/bin/gunicorn -c /home/ubuntu/virtualenv/gunicorn_config.py myapp.wsgi; sudo nginx -c /etc/nginx/nginx.conf; 

特別感謝用戶上面點了史蒂夫

如果有人運行到這樣一個問題,在您的應用程序通過<domainhere>.com是可訪問的,但不是www.<domainhere>.com在今後檢查以下內容: 1)確保您的ALLOWED_HOSTS=[]有類似的設置:

ALLOWED_HOSTS = ['www.myapp.com','myapp.com','<server-ip-here>','ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com'] 

2)你是正確的開始都gunicorn和使用命令,如nginx的:

sudo /usr/local/bin/gunicorn -c /home/ubuntu/virtualenv/gunicorn_config.py myapp.wsgi; 
sudo nginx -c /etc/nginx/nginx.conf; 

3)使用如下命令來檢查兩者都運行正常:

ps ax|grep nginx; ps ax|grep gunicorn; 

祝你好運!

相關問題