Nginx сервер предотвращает прямой доступ к текстовому файлу, но разрешает доступ к запросу - PullRequest
0 голосов
/ 24 января 2020

У меня есть один Nginx сервер, который имеет несколько файлов конфигурации для разных доменов в папке «sites-enabled». Все папки, которые связаны с доменом, находятся в папке сервера HTML. Мне нужна одна папка, которая будет содержать текстовый файл и те файлы, которые я могу загрузить в любой файл папки домена, используя метод $ .get (). Я хочу обеспечить прямой доступ к данным через браузер, но к нему можно обратиться с помощью запроса get, чтобы предотвратить прямой доступ. Домены могут создаваться динамически несколько раз, поэтому код должен быть в конфигурации по умолчанию, чтобы он мог применяться ко всему домену автоматически

Например, - мой IP-адрес сервера равен «192.168.2.1» - в «включенных сайтах» I есть 3 файла 1) по умолчанию 2) xyz.com.conf 3) ab c .com.conf - у меня есть папка HTML и в этой папке 2 домена xyz и ab c. Я создал еще одну root папку «content» и создал файл «data.txt», который содержит защищенные данные и загрузку в файл обоих доменов с помощью метода $ .get () «http://192.168.2.1/content/data.txt "- Теперь я хочу добавить правило в файл конфигурации, чтобы оно могло запретить прямой доступ из браузера, но разрешить доступ из обеих папок

Я пробовал с приведенным ниже кодом, но он не будет работать так как он разрешает доступ, если пытался получить доступ через ip, но если я пытался получить доступ через домен xyz.com или ab c .com, то выдает ошибку 403.

location ~* content/ {
    valid_referers 192.168.2.1;
    if ($invalid_referer) {
        return 403;
    }
}

Может кто-нибудь помочь с правило, чтобы я мог добиться с одним изменением в файле конфигурации по умолчанию? Или любое другое решение для достижения этой цели?

...