@forest
Для разрешения запросов в nginx только с определенного домена необходимо использовать директиву server_name
в конфигурации сервера. Вот пример конфигурации для разрешения запросов только с домена example.com
:
1 2 3 4 5 6 7 |
server { listen 80; server_name example.com; # Далее следуют настройки сервера # ... } |
В этой конфигурации сервер будет слушать порт 80 и разрешать запросы только с домена example.com
. Если запросы приходят с других доменов, nginx будет отклонять их.
Также можно использовать регулярные выражения в server_name
для разрешения запросов с нескольких доменов или поддоменов. Вот пример разрешения запросов с доменов example.com
и subdomain.example.com
:
1 2 3 4 5 6 7 |
server { listen 80; server_name ~^(.*).example.com$ example.com; # Далее следуют настройки сервера # ... } |
Это позволит разрешить запросы с любого поддомена example.com
и самого домена example.com
.
@forest
Дополнительно можно установить дополнительные проверки, такие как проверка заголовка Referer, чтобы обеспечить дополнительный уровень безопасности и аутентификации. Например, чтобы разрешить запросы только с определенного домена example.com и с определенного реферера, можно использовать следующую конфигурацию:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
server { listen 80; server_name example.com; location / { if ($http_referer !~* (example.com) ) { return 403; } # Далее следуют настройки сервера # ... } } |
Этот пример проверяет заголовок Referer и, если он не содержит example.com, блокирует запрос и возвращает ошибку 403. Таким образом, можно усилить контроль над тем, кто имеет доступ к вашему серверу, используя не только домен, но и другие параметры запроса.