Вопросы по проксированию вместо Cloudflare

Smuel
На сайте с 09.01.2021
Offline
46
322

Всем привет!
После начала проблем с CF, изучив тему аналогов для проксирования, решил организовать аналог следующим образом:
- Арендовал VPS на котором развернул Nginx (так как больше с ним работаю). В администрировании я среднячок. Не нуль, но и не профи.
Итого на старте имеем:
1) Backend - hetzner выделенный сервер nginx с кучкой сайтов.
2) Reverse proxy на nginx с РФ айпишником. Его задача скрывать реальный ip от абуз и неожиданных блокировок, а также иметь ряд WAF-правил для блокировки ботни.

Теперь к проблеме.
а) На Reverse proxy создал конфиг для нужного сайта. Там же выпустил SSL. Прочитал, что вроде как так правильнее, чтобы ssl обрабатывался на фронте. Нужные заголовки передаются как надо. По логам вроде как на backend все поступает корректно.
б) Если оставляем SSL на Backend, то начинаются редиректы постоянные. Пока не смог победить. Пока основные подозрения на Backend, где-то он походу создает лишние редиректы.
в) Если же отключить SSL на Backend , то тогда сайты стартуют, но поломанные, так как CSS и JS не загружаются и отдают blocked: mixed-content. Эту проблему победить удалось с помощью гопоты - он предложил следующий костыль - прописать в wp-config строчку:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';

сбросил кэш и вроде все завелось. 

Собственно затык в том, что как лучше? Оставить вариант в)? Тот же ChatGPT пишет, что это решение - обманка и оно не идеальное. В идеале, по его словам, на backend тоже включить SSL. 

Собственно, вопрос к знатокам - как лучше? И если лучше вариант б) - ssl на backend, то куда смотреть в случае с nginx, чтобы решить проблему редиректов? С гопотой пытаюсь уже третий день победить эти долбанные редиректы, но все никак.


br.almighty
На сайте с 13.07.2021
Offline
96
#1

Если данные передаются по незащищенному протоколу (не важно между пользователем или между серверами), то в теории они могут быть скомпрометированы. Например, пароль администратора вашего WP.

Но это в теории. Проверять это на практике или нет, только вам решать.

Лично моё мнение - стоит включить.

Mik Foxi
На сайте с 02.03.2011
Offline
1179
#2
Smuel :
В идеале, по его словам, на backend тоже включить SSL. 

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

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (Зеркало: https://антибот.рф/ ) Форум на замену серчу: https://foxi.biz/
GRAFLEKX
На сайте с 05.11.2010
Offline
221
#3
Smuel :
Пока основные подозрения на Backend, где-то он походу создает лишние редиректы.

Проверять настройки сервера, нет ли там редиректа с http на https - зачастую включают при получении SSL.

WP тоже такую настройку имеет, вангую, что редиректы наложились, поэтому только проверять.

Редирект с http на https и основной SSL сайта должны быть только на прокси.

Первый вариант более разумный и правильный, с т.з. безопасности.

Мы поможем в поиске работы: стабильная работа для вас ( https://www.rabota.ru ), вакансии и резюме.
Smuel
На сайте с 09.01.2021
Offline
46
#4
GRAFLEKX #:
Первый вариант более разумный и правильный, с т.з. безопасности.
б) Если оставляем SSL на Backend, то начинаются редиректы постоянные. 
в) Если же отключить SSL на Backend 

Немного запутался) Можешь не первый вариант указать, а Б или В правильный?)
br.almighty
На сайте с 13.07.2021
Offline
96
#5
Smuel #:
б) Если оставляем SSL на Backend, то начинаются редиректы постоянные. 
в) Если же отключить SSL на Backend 

Немного запутался) Можешь не первый вариант указать, а Б или В правильный?)

Вам ИИ правильно написал про заголовок HTTP_X_FORWARDED_PROTO. Как правильно он настраивается на WP, я не в курсе, но дело в нём. 

GRAFLEKX
На сайте с 05.11.2010
Offline
221
#6
Smuel #:
б) Если оставляем SSL на Backend, то начинаются редиректы постоянные. 
в) Если же отключить SSL на Backend 

Немного запутался) Можешь не первый вариант указать, а Б или В правильный?)

Смотрите сами, у вас получилась ситуация, что SSL установлен и на Reverse proxy, и на Backend - в итоге получили цикл редиректов.

Теоретически на Backend должен быть SSL, чтобы защитить канал, но SSL должен быть обычный самоподписанный.

А вот на Reverse proxy должен быть установлен SSL выданный для сайта, так как к Reverse proxy обращаются все браузеры.

Короче, вам в обих случаях нужно проверять настройки Nginx - наверняка на обоих стоит редирект, раз SSL на обоих установлен.

Редирект с http на https нужно оставлять только на Reverse proxy, а на Backend все редиректы удалять из настроек Nginx.


Короче, делайте по варианту SSL для сайта на Reverse proxy, Backend без SSL.

Ничего страшного в этом нет, иначе вы запутаетесь...

Если настраивать по уму, то нужен доступ к обоим серверам, чтобы смотреть настройки Nginx у обоих.

Если юзать SSL на обоих серверах, то там еще и Политики нужно добавлять в заголовок: add_header Access-Control-Allow-Origin "сайт или IP зависит от настроек";, иначе будет проблема со скриптами, как щас у вас...

PS: А вообще, лучше вот Кодекс WP почитайте, там всё уже разжевано, это лучше чем советы GPT.

Там же и правильные заголовки в настройках Nginx указаны...

Smuel
На сайте с 09.01.2021
Offline
46
#7
GRAFLEKX #:
PS: А вообще, лучше вот Кодекс WP почитайте, там всё уже разжевано, это лучше чем советы GPT.

Благодарю! 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий