Django apache wsgi возвращает ошибку 403 Запрещено - PullRequest
0 голосов
/ 11 марта 2020

Я хочу иметь базовую аутентификацию в моем приложении django с помощью базовой аутентификации apache.

моя конфигурация выглядит следующим образом:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName url.test.com
    ServerAdmin webmaster@localhost.com

    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/

    WSGIDaemonProcess projectname \
        python-home=/home/user/app/project/env \
        python-path=/home/user/app/project:/home/user/app/project/env/lib/python3.5/site-packages/
    WSGIProcessGroup projectname
    WSGIScriptAlias / /home/user/app/project/app/server/wsgi.py
    WSGIPassAuthorization On

    Alias /static/ /home/user/app/app/project/static/

    ErrorLog ${APACHE_LOG_DIR}/error-log
    CustomLog ${APACHE_LOG_DIR}/access-log combined
    LogLevel info

    # Protecting with basic authentication
    <Location />
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require user testuser
        AuthBasicProvider wsgi
        WSGIAuthUserScript /home/user/app/project/app/server/wsgi.py
    </Location>

    SSLCertificateFile /etc/letsencrypt/live/project.app.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/project.app.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

и wsgi.py, содержащий:

import os
import sys

sys.path.insert(0, '/home/user/app/project')
sys.path.append('/home/user/app/project/env/lib/python3.5/site-packages')

os.environ["DJANGO_SETTINGS_MODULE"] = "project.app.settings"

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

с этой настройкой, я получаю сообщение об ошибке:

AH01618: пользовательский пользователь теста не найден: /

после некоторого исследования я увидел, что мне, вероятно, следует удалить AuthBasicProvider и WSGIAuthUserScript из Location в:

# Protecting with basic authentication
<Location />
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    Require user testuser
</Location> 

, что приведет к тому, что пароль будет принят, но затем я получу 403 ошибка в приложении django:

Запрещено: /

[11 / Mar / 2020 17:23:35] "GET / HTTP / 1.1" 403 13

, так как я обычно больше разбираюсь в программировании, я не очень знаком с настройкой приложения django за apache и с трудностями. Кто-нибудь видит мою проблему?

...