加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:27:33 所属栏目:Nginx 来源:网络整理
导读:我正在部署我的第一个django应用程序.我从部署php-fpm熟悉nginx和fastcgi.我无法让python识别网址.我也对如何进一步调试这一点感到茫然.我欢迎解决这个问题的方法和调试fastcgi问题的技巧. 目前我得到一个404页面,不管网址是什么,并且由于某种原因是双斜线

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

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

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

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

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

我的nginx配置

server {
       listen   80;
       server_name  beta.ahrlty.com;
       access_log  /home/ahrlty/ahrlty/logs/access.log;
       error_log  /home/ahrlty/ahrlty/logs/error.log;

       location /static/ {
               alias  /home/ahrlty/ahrlty/ahrlty/static/;
               break;
       }

       location /media/ {
               alias /usr/lib/python2.6/dist-packages/django/contrib/admin/media/;
               break;
       }

       location / {
               include /etc/nginx/fastcgi_params;
               fastcgi_pass 127.0.0.1:8001;
               break;
       }
}

和我的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  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  PATH_INFO          $fastcgi_script_name;

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

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

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

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

FORCE_SCRIPT_NAME=""

在我的settings.py中.也给

FORCE_SCRIPT_NAME="/"

一试!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读