Как разрешить запросы в nginx только с определенного домена?

Пользователь

от forest , в категории: Другие , год назад

Как разрешить запросы в nginx только с определенного домена?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от carlo.cummerata , год назад

@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.

Пользователь

от alisa.bahringer , 4 месяца назад

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