Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同一Apache服务器上的两个Django站点-禁止在两个站点之间进行基本身份验证_Django_Apache_Wsgi_Basic Authentication - Fatal编程技术网

同一Apache服务器上的两个Django站点-禁止在两个站点之间进行基本身份验证

同一Apache服务器上的两个Django站点-禁止在两个站点之间进行基本身份验证,django,apache,wsgi,basic-authentication,Django,Apache,Wsgi,Basic Authentication,我在Apache上运行两个Django站点。一个是API的演示页面,因此对另一个进行一些API调用,并通过HTTP basic auth进行身份验证。我也试着在同一个网站上做同样的事情,但我有同样的问题 当发出请求时,Apache会给出403错误消息/页 以下是API服务器虚拟主机的必要部分: <VirtualHost 12.34.567.890:80> ServerAdmin admin@example.com ServerName dev.example.com

我在Apache上运行两个Django站点。一个是API的演示页面,因此对另一个进行一些API调用,并通过HTTP basic auth进行身份验证。我也试着在同一个网站上做同样的事情,但我有同样的问题

当发出请求时,Apache会给出403错误消息/页

以下是API服务器虚拟主机的必要部分:

<VirtualHost 12.34.567.890:80>
    ServerAdmin admin@example.com
    ServerName dev.example.com
    ServerAlias dev.example.com

    ErrorLog /var/log/apache2/lab-error.log

    WSGIScriptAlias / /webapps/lab/lab-wsgi.py

    WSGIPassAuthorization On

    <Directory /webapps/lab>
        <Files lab-wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

服务器管理员admin@example.com
ServerName dev.example.com
ServerAlias dev.example.com
ErrorLog/var/log/apache2/lab-error.log
WSGIScriptAlias//webapps/lab/lab-wsgi.py
WSGIPassAuthorization On
命令拒绝,允许
通融
这是演示站点虚拟主机:

<VirtualHost 12.34.567.890:80>
   ServerAdmin admin@example.com
    ServerName dvdemo.example.com
    ServerAlias dvdemo.example.com

    ErrorLog /var/log/apache2/demo-error.log

    WSGIScriptAlias / /webapps/lab/demo/Demo/wsgi.py

    WSGIPassAuthorization On

    <Directory /webapps/lab/demo/Demo>
        <Files wsgi.py>
            Order allow,deny
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

服务器管理员admin@example.com
ServerName dvdemo.example.com
ServerAlias dvdemo.example.com
ErrorLog/var/log/apache2/demo-error.log
WSGIScriptAlias//webapps/lab/demo/demo/wsgi.py
WSGIPassAuthorization On
命令允许,拒绝
通融
看起来,尽管我在上进行了
WSGIPassAuthorization,但基本身份验证仍然由Apache处理(Apache 403页面,而不是验证失败时来自Django的JSON错误)

如果我从本地机器向API服务器发出相同的请求,它就会工作

有没有关于什么可能是错误的建议,或者我应该进一步调查什么?谢谢

编辑以澄清:
API服务器有一个OAuth2 API,我正试图为它创建一个演示页面/站点。如果我通过cURL或其他服务器向API发出请求,则请求会成功,并且只有当请求来自与API相同的服务器(不同或相同的虚拟主机)时才会出现问题。

文件指令中不能有子目录。使用:

<Directory /webapps/lab/demo/Demo>
    <Files wsgi.py>
        Order allow,deny
        Allow from all
    </Files>
</Directory>

命令允许,拒绝
通融

WSGIPassAuthorization用于通过HTTP基本身份验证所需的凭据进行传递。Django使用基于表单的身份验证,因此通常不太可能需要这样做。您确实在使用Django中的某些东西来执行HTTP基本身份验证吗。明确您在哪里处理HTTP基本身份验证。是的,Django肯定在使用HTTP基本身份验证。API服务器有一个OAuth2 API,我正试图为它创建一个演示页面/站点。正如我所说,它可以从除同一服务器之外的任何位置请求API端点。我也试着像你提到的那样修复文件指令,以防万一,但是运气不好。