Прям замучался, как можно реализовать 1) Пропускать пустые origin 2) Пропустить origin

где есть значение нашего главного домена и всех поддоменов(последнее пока не обязательно)
3) Блокировать всех остальных
крутил в сторону
``` location /test {
if ($http_origin = "") {
return 200;
proxy_pass https://1.1.1.1:433;
}
if ($http_origin ~ '^https?://(localhost|www\.site\.ru|site\.ru)') {
return 200;
}
proxy_pass https://1.1.1.1:443;
proxy_ssl_server_name on;
proxy_ssl_name site.ru;
proxy_set_header Host site.ru;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}```
проверяю curl -v -I https://site.ru/test вижу HTTP/2 200 в браюзере предлагает скачать файл test седержимое пустое. Короче заблудился я

12 ответов

26 просмотров

map $http_origin $deny { ~^https?://(localhost|(www\.)?site\.ru) ''; '' ''; default 1; } server { ... location /test { if ($deny) { return 403; } ... } }

Но из соображений производительности рекомендую перечислить все возможные варианты origin явно, а не использовать regex. Тогда это будет hash-driven map table со сложностью вычисления O(1)

Andrei-St Автор вопроса
Johann
map $http_origin $deny { ~^https?://(localhost...

я не силен map эти типа алиас? if ($deny) { return 403; } выкинет если истино (~^https?://(localhost|(www\.)?site\.ru)) то есть если в origin значение https://site.ru (то есть моего сайта и это не ок)

Andrei-St Автор вопроса
Johann
Но из соображений производительности рекомендую пе...

понял ну тогда например ```if ($http_origin = ‘https://mysite.ru’)```

Andrei St
понял ну тогда например ```if ($http_origin = ‘htt...

http://nginx.org/ru/docs/http/ngx_http_map_module.html Перед тем, как задавать дальнейшие вопросы, рекомендую прочесть документацию Там не сильно много текста

Andrei-St Автор вопроса
Johann
http://nginx.org/ru/docs/http/ngx_http_map_module....

пасиб по части map ознакомился, остальное тоже прочту

Andrei St
пасиб по части map ознакомился, остальное тоже про...

Всё, что не совпало с regex шаблоном и не пустая строка, даст в результате 1, и тогда сработает if В противном случае результат - пустая строка, if не сработает

Andrei-St Автор вопроса
Johann
Всё, что не совпало с regex шаблоном и не пустая с...

map в location можно засунуть? просто хочу тренироваться сперва на /test ентрипоинте

Andrei St
map в location можно засунуть? просто хочу трениро...

map нельзя засунуть даже в server map должен быть описан в контексте http Не вижу, чем это может помешать тренироваться только там, где надо

Andrei St
map в location можно засунуть? просто хочу трениро...

В location тебе надо засунуть if Какая тебе разница, где находится map? Переменная вычисляется только при обращении к ней lazy evaluation

Andrei-St Автор вопроса
Johann
map $http_origin $deny { ~^https?://(localhost...

без regex map $http_origin $deny { https://www.myssite.ru ''; '' ''; default 1; } server { ... location /test { if ($deny) { return 403; } ... } } или в https://www.myssite.ru (нужно экранировать часть элементов)

Andrei St
без regex map $http_origin $deny { https://www...

Без regex это перечислить все возможные варианты map $http_origin $deny { http://mysite.ru ''; https://mysite.ru ''; http://www.mysite.ru ''; https://www.mysite.ru ''; '' ''; default 1; }

Похожие вопросы

Обсуждают сегодня

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта