Apache24 Production Server For Django React App: React показывает ошибку 403 Forbidden

Я пытаюсь запустить производственный сервер на экземпляре AWS EC2 (Windows), используя Apache для бэкенда Django, связанного с фронтендом React.

Когда я тестирую приложение на Django runserver все работает хорошо, но сейчас, когда я пытаюсь использовать его на Apache, я просто вижу пустой экран. Когда я проверяю консоль, она сообщает мне, что у меня нет разрешения на доступ к статическим файлам react (ошибка 403 forbidden).

В своих попытках исправить это, я запустил collectstatic, который поместил все статические файлы (включая реактовские) в ведро S3. Это означает, что страницы Django (страницы администратора) могут использовать статические файлы, но страницы React не получают доступ к файлам из ведра S3. Я не уверен, лучше ли найти способ заставить мое приложение React использовать статические файлы из ведра, или мне следует просто продолжать искать способ заставить Apache обслуживать статические файлы.

Я знаю, что файлы могут быть найдены, потому что это не 404, а 403, так что это должно быть какая-то проблема с моей конфигурацией, которая не дает ему разрешение на доступ к ним.

Я пробовал множество способов решить эту проблему, но вот что у меня есть на данный момент:

Django Settings

ALLOWED_HOSTS = ['www.site.com']

WSGI_APPLICATION = 'site.wsgi_windows.application'

STATICFILES_DIRS = [
    os.path.join(os.path.join(BASE_DIR, 'frontend/build/static'))
]

CORS_ALOWWED_ORIGINS = [
    "https://www.example.com",
]

Django wsgi_windows

sys.path.append('C:/Users/Administrator/Desktop/Website/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'site.settings'

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'site.settings')

application = get_wsgi_application()

Django urls.py

urlpatterns = [
    path('admin', admin.site.urls),
    path('api', include('api.urls')),
    path('', TemplateView.as_view(template_name='index.html')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

.htaccess (файл в папке build)

Options -MultiViews
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^ index.html [QSA,L]

Apache httpd.conf

I have mod_rewrite enabled

Listen 443

Define SRVROOT "c:/Apache24"

Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-ssl.conf

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

WSGIApplicationGroup %{GLOBAL}

LoadFile "C:/Users/Administrator/AppData/Local/Programs/Python/Python310//python310.dll"
LoadModule wsgi_module "C:/Users/Administrator/AppData/Local/Programs/Python/Python310/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd"
WSGIPythonHome "C:/Users/Administrator/AppData/Local/Programs/Python/Python310/"

Apache httpd-vhosts.conf

<VirtualHost *:80>

    ServerName www.example.com

    Redirect permanent / https://www.example.com/

</VirtualHost>

Apache httpd-ssl.conf

<VirtualHost *:443>

    WSGIScriptAlias / "C:/Users/Administrator/Desktop/Website/site/site/wsgi_windows.py"

    <Directory "C:/Users/Administrator/Desktop/Website/site/site/">

        <Files wsgi_windows.py>

            Require all granted

        </Files>

    </Directory>

    Alias /static "C:/Users/Administrator/Desktop/Website/website_frontend/build/static"
    <Directory "C:/Users/Administrator/Desktop/Website/website_frontend/build/static">
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile C:/Users/Administrator/Desktop/SSL_Stuff/file.crt
    SSLCertificateKeyFile C:/Users/Administrator/Desktop/SSL_Stuff/private_key.key
    SSLCACertificateFile C:/Users/Administrator/Desktop/SSL_Stuff/file.crt

</VirtualHost>     
Вернуться на верх