@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. Таким образом, можно усилить контроль над тем, кто имеет доступ к вашему серверу, используя не только домен, но и другие параметры запроса.