Рейтинг:1

Обратный прокси в Apache + CentOS для запросов HTTPS к веб-серверу PostgREST

флаг gs

Я хотел бы делать запросы https к моему веб-серверу postgREST, который по своей конструкции не поддерживает https. Я провожу несколько дней, теперь я не знаю, что дальше ...

Моя установка

  • Мой сервер работает на CentOS 7.9.2009
  • У меня есть домен веб-сайта, который использует Wordpress для обслуживания моего контента в главная/мой пользователь/public_html
  • Я устанавливаю PostgREST 7.0.1 на свой сервер, который работает на порту 3000.
  • Я использую Apache/2.4.51 (cPanel)

Моя проблема

  • Следующий запрос работает нормально: http://мой-домен.com:3000/my_db_table
  • Я хотел бы запустить тот же запрос, например: https://мой-домен.com/api/my_db_table
  • Моя конфигурация Apache находится в файле «включает», кажется, загружена (поскольку возникают ошибки, когда я намеренно помещаю неправильный синтаксис в этот файл), и это выглядит так:
<VirtualHost *:443>

    DocumentRoot /
    ServerName my-domain.com
    ServerAlias my-domain
    ErrorLog /home/myuser/public_html/api/error.log
    CustomLog /home/myuser/public_html/api/access.log combined

    SSLEngine on
    SSLUseStapling off
    SSLCertificateFile /etc/ssl/certs/server.my-domain.com.crt
    SSLCertificateKeyFile /etc/ssl/private/server.my-domain.com.key


    <Location /api/ >
         ProxyPreserveHost On
         ProxyPass http://localhost:3000/
         ProxyPassReverse http://localhost:3000/
         RequestHeader set X-Forwarded-Port "443"
         RequestHeader set X-Forwarded-Proto "https"
   </Location>
</VirtualHost>
  • Бег httpd -t возвращается Синтаксис ОК
  • после моих изменений я бегу sudo systemctl перезапустить httpd
  • когда я затем пытаюсь сделать запрос, например curl -i https://my-domain.com/api/my_db_table Меня перенаправляют на страницу 404 моего сайта Wordpress.
  • в журнал ошибок файл моей конфигурации apache не содержит ошибок (в нем были ошибки для сшивания, которые я решил, добавив строку SSLUseStapling выключен в моем конфиге)

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

Рейтинг:0
флаг ru

Дополнение ко второму пункту ответ дан shearn89, убедитесь, что модуль mod_proxy_http также установлен (используйте a2enmod proxy_http установить его).

Рейтинг:0
флаг cn

Некоторые вещи, чтобы проверить:

  1. SELinux работает? Если да, то SEBoolean httpd_can_network_connect установить на 1?
  2. Является mod_proxy установлен?
  3. Что-нибудь на виртуальном хосте без прокси использует путь /апи? Например, будет ли он блокировать вызовы Место расположения? Лучший ответ: Как правильно обрабатывать относительные URL-адреса с помощью обратного прокси-сервера

Не эксперт по апачам, но эти пришли на ум!

JoeBe avatar
флаг gs
Спасибо за ответ. Тем не менее, я, вероятно, могу исключить ваши предложения. (1) Нет, он отключен. (2) Запуск `httpd -M` показывает мне `proxy_module`, так что, похоже, он включен. (3) Я только что создал каталог `/api` в своей среде wordpress в `home/myuser/public_html`, поэтому там не должно быть ничего, кроме этого прокси

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.