Я использую Drupal 9.3 и создал личную папку вне корневого каталога. Я следовал документации [соединять] и добавил следующую строку в мой файл settings.php в drupal:
$settings['file_private_path'] = '../private';
Частный файл существует за пределами моего корневого веб-каталога следующим образом: /var/www/example.com/private
с веб-корнем в/var/www/example.com/html
.
Я использую nginx и хочу убедиться, что приватный файл правильно защищен. Для этого я добавил этот блок:
местоположение ^~ {
внутренний;
псевдоним /var/www/example.com/private;
}
Правильно ли это и правильно ли я защитил личный файл/папку?
В документации упоминается об этом: Обратите внимание, что веб-серверам, отличным от Apache, может потребоваться дополнительная настройка для защиты частных файловых каталогов.
Мой полный виртуальный хост Nginx (то есть файл конфигурации) показан ниже:
сервер {
корень /var/www/example.com/html;
индекс index.html index.htm index.nginx-debian.html index.php;
имя_сервера example.com www.example.com;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
location = /favicon.ico { log_not_found off; доступ_лог выключен; }
location = /robots.txt { log_not_found off; доступ_лог выключен; позволять все; }
расположение ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
истекает макс.;
log_not_found выключен;
}
# передать PHP-скрипты на сервер FastCGI
#
расположение ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
включить fastcgi_params;
}
# запретить доступ к файлам .htaccess, если корневой каталог Apache
# совпадает с nginx
#
местоположение ~ /\.ht {
отрицать все;
}
местоположение ^~ {
внутренний;
псевдоним /var/www/example.com/private;
}
слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($host = example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80 ;
слушать [::]:80 ;
имя_сервера example.com www.example.com;
вернуть 404; # под управлением Certbot
}