Я пытаюсь заблокировать доступ ко всем файлам внутри www.mysite.net/uploads
для всех, кроме некоторых ips.У меня есть php-файлы, документы, изображения и т. Д., И я хотел бы, чтобы весь каталог uploads
и все остальное ограничивалось ip.Я попытался настроить два местоположения, но ни один не работает.Что я делаю не так?
Редактировать: Вот мой полный конфигурационный файл
server {
listen 80;
listen [::]:80;
server_name mysite.net www.mysite.net;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
rewrite_log on;
server_name mysite.net www.mysite.net;
root /var/www/mysite.net/html;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location /api {
root /var/www/mysite.net/html/api;
rewrite ^/api/(.*)$ /$1 break;
try_files $uri $uri/ /api/index.php$is_args$args;
}
location ~ /api/.+\.php$ {
root /var/www/mysite.net/html/api;
rewrite ^/api/(.*)$ /$1 break;
#include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location /uploads {
alias /var/www/mysite.net/html/uploads;
allow 1.2.3.4;
deny all;
}
location /uploads/* {
allow 1.2.3.4;
deny_all;
}
}