2012-02-15 60 views
3

當我查詢這個URL空 '當前URL' Django的部署Nginx的和FastCGI

http://mywebsite.com/foos/ 

Django的給我:

Page not found (404) 
Request Method:  GET 
Request URL: http://mywebsite.com/foos//  
The current URL, , didn't match any of these. 

錯誤:
- 在請求URL就加我'/'結尾,
- 在當前URL中爲空。

我的規格:
我運行我的django網站與nginx作爲reverseproxy fast_cgi。

這裏nginx的我的網站的conf:

server { 
     listen 80; 
     server_name mywebsite.com; 


      location/{ 
        fastcgi_pass unix:/tmp/_var_wwwdjango_mywebsite.socket; 
        include /etc/nginx/fastcgi_params; 
      } 
    } 

這裏是我的fastcgi_params文件:

fastcgi_param QUERY_STRING   $query_string; 
fastcgi_param REQUEST_METHOD   $request_method; 
fastcgi_param CONTENT_TYPE   $content_type; 
fastcgi_param CONTENT_LENGTH   $content_length; 
fastcgi_param PATH_INFO    $fastcgi_script_name; 
fastcgi_param SCRIPT_FILENAME   $request_filename; 
fastcgi_param SCRIPT_NAME    $fastcgi_script_name; 
fastcgi_param REQUEST_URI    $request_uri; 
fastcgi_param DOCUMENT_URI   $document_uri; 
fastcgi_param DOCUMENT_ROOT   $document_root; 
fastcgi_param SERVER_PROTOCOL   $server_protocol; 

fastcgi_param GATEWAY_INTERFACE  CGI/1.1; 
fastcgi_param SERVER_SOFTWARE   nginx/$nginx_version; 

fastcgi_param REMOTE_ADDR    $remote_addr; 
fastcgi_param REMOTE_PORT    $remote_port; 
fastcgi_param SERVER_ADDR    $server_addr; 
fastcgi_param SERVER_PORT    $server_port; 
fastcgi_param SERVER_NAME    $server_name; 

#fastcgi_param HTTPS     $server_https; 

# PHP only, required if PHP was built with --enable-force-cgi-redirect 
fastcgi_param REDIRECT_STATUS   200; 

備註:

  • 如果我添加url(r'^$', 'myapp.views.index')到我的圖案化,使我我的所有請求的視圖...所以這顯然是一個nginx conf或fast_cgi問題。

  • 當我用django開發服務器執行我的網站時,我的網址沒問題。

+0

請你可以更新你的問題,包括'/ etc/nginx/fastcgi_params' – Alasdair 2012-02-15 17:48:13

+0

@Alasdair我加了它。 – 2012-02-15 18:13:35

回答

3

您缺少PATH_INFO參數。

fastcgi_param PATH_INFO $fastcgi_script_name; 

見nginx的文檔:http://wiki.nginx.org/DjangoFastCGI

如果你在你喜歡的搜索引擎嘗試「nginx的PATH_INFO的Django」,看起來有些用戶不得不刪除SCRIPT_NAME參數以及得到它的工作。

+0

非常感謝你 – 2012-02-15 20:10:35

+0

很高興它的工作。您是否必須刪除SCRIPT_NAME,或者是否添加了足夠多的PATH_INFO? – Alasdair 2012-02-15 23:09:10

+0

我不知道我第一次沒有刪除它,它不工作,所以我刪除了,我工作(我不知道,因爲第一次忘記重新啓動nginx)所以...如果我認爲我會重新測試。 – 2012-02-16 08:08:11