Ваше решение для себя выглядит странно для меня.Вы включаете SSLProxyEngine и затем отключаете все меры безопасности.Бэкэнд API работает под HTTPS и HTTP на порту 3000 одновременно?Это невозможно.
Я использую эту настройку (apache в качестве прокси-сервера для внутреннего приложения) довольно часто и предлагаю следующую конфигурацию:
Поскольку я не понимал назначение директив перезаписи, я их пропустил.VirtualHost на порту 80 всегда перенаправляет HTTP-запросы к HTTPS.Если это работает, добавьте permanent
к директиве (постоянные кэшируются некоторыми браузерами, см. Комментарий в VirtualHost *: 80).
VirtualHost для HTTPS обслуживает контент из вашего DocumentRoot по адресу / var / www / html.Директива Directory
заботится о том, чтобы обслуживались только правильно адресованные файлы (поиск невозможен).VirtualHost также предоставляет прокси для / api на том же сервере через порт 3000.
Он должен работать для apache 2.4, если ваша конфигурация letsencrypt правильная (заполните XXXX).Обе конфигурации VirtualHost могут быть записаны в один файл, обычно расположенный в / etc / apache2 / sites-available с символической ссылкой на / etc / apache2 / sites-enabled.Удалите / переименуйте ваш файл .htaccess и другие конфигурации перед тестированием этой конфигурации.Если вам нужно управление доступом через Apache, это также можно настроить непосредственно в конфигурации VirtualHost.
<VirtualHost *:80>
ServerName XXXX.ddns.net
# Always https
Redirect / https://XXXX.ddns.net/
# Redirect permanent / https://XXXX.ddns.net/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName XXXX.ddns.net
# These are your SSL settings; your responsibility
SSLCertificateFile /etc/letsencrypt/live/XXXX.ddns.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/XXXX.ddns.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# Your document root; where the JavaScript application lives
DocumentRoot /var/www/html
<Directory /var/www/html/ >
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride None
Order Allow,Deny
Allow From All
</Directory>
# Reverse proxy settings for api
ProxyRequests Off
ProxyPreserveHost On
<Location /api >
ProxyPass http://127.0.0.1:3000/api
ProxyPassReverse http://127.0.0.1:3000/api
</Location>
</VirtualHost>