nginx fastcgi与django的问题(url中的双斜线?)

前端之家收集整理的这篇文章主要介绍了nginx fastcgi与django的问题(url中的双斜线?)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在部署我的第一个django应用程序.我从部署PHP-fpm熟悉Nginx和fastcgi.我无法让python识别网址.我也对如何进一步调试这一点感到茫然.我欢迎解决这个问题的方法和调试fastcgi问题的技巧.

目前我得到一个404页面,不管网址是什么,并且由于某种原因是双斜线
对于http://www.site.com/admin/

  1. Page not found (404)
  2. Request Method: GET
  3. Request URL: http://www.site.com/admin//

我的urls.py来自调试输出 – 在dev服务器中工作.

  1. Using the URLconf defined in ahrlty.urls,Django tried these URL patterns,in this order:
  2. ^listings/
  3. ^admin/
  4. ^accounts/login/$
  5. ^accounts/logout/$

我的Nginx配置

  1. server {
  2. listen 80;
  3. server_name beta.ahrlty.com;
  4. access_log /home/ahrlty/ahrlty/logs/access.log;
  5. error_log /home/ahrlty/ahrlty/logs/error.log;
  6. location /static/ {
  7. alias /home/ahrlty/ahrlty/ahrlty/static/;
  8. break;
  9. }
  10. location /media/ {
  11. alias /usr/lib/python2.6/dist-packages/django/contrib/admin/media/;
  12. break;
  13. }
  14. location / {
  15. include /etc/Nginx/fastcgi_params;
  16. fastcgi_pass 127.0.0.1:8001;
  17. break;
  18. }
  19. }

和我的fastcgi_params

  1. fastcgi_param QUERY_STRING $query_string;
  2. fastcgi_param REQUEST_METHOD $request_method;
  3. fastcgi_param CONTENT_TYPE $content_type;
  4. fastcgi_param CONTENT_LENGTH $content_length;
  5. fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  6. fastcgi_param REQUEST_URI $request_uri;
  7. fastcgi_param DOCUMENT_URI $document_uri;
  8. fastcgi_param DOCUMENT_ROOT $document_root;
  9. fastcgi_param SERVER_PROTOCOL $server_protocol;
  10. fastcgi_param GATEWAY_INTERFACE CGI/1.1;
  11. fastcgi_param SERVER_SOFTWARE Nginx/$Nginx_version;
  12. fastcgi_param REMOTE_ADDR $remote_addr;
  13. fastcgi_param REMOTE_PORT $remote_port;
  14. fastcgi_param SERVER_ADDR $server_addr;
  15. fastcgi_param SERVER_PORT $server_port;
  16. fastcgi_param SERVER_NAME $server_name;
  17. fastcgi_param PATH_INFO $fastcgi_script_name;
  18. # PHP only,required if PHP was built with --enable-force-cgi-redirect
  19. fastcgi_param REDIRECT_STATUS 200;

最后我用django的manage.py从命令行运行fastcgi.

  1. python manage.py runfcgi method=threaded host=127.0.0.1 port=8080 pidfile=mysite.pid minspare=4 maxspare=30 daemonize=false

我很难调试这个.有人跳出来吗?

笔记

> Nginx版本:Nginx / 0.7.62
> Django svn trunk rev 13013@H_301_50@

最佳答案@H_301_50@
也许看看http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#ChangedthewayURLpathsaredetermined的django文档.
我的熟悉问题的解决方案(但使用lighttpd)正在推出

  1. FORCE_SCRIPT_NAME=""

在我的settings.py中.也给

  1. FORCE_SCRIPT_NAME="/"

一试!@H_301_50@

猜你在找的Nginx相关文章