Я работаю с панелью управления, и мне нужно установить аутентификацию для доступа администратора.
Я уже создал пользователя и пароль, конфигурацию nginx следующим образом:
server {
listen 443 ssl;
server_name localhost;
root /usr/local/pannel/www;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
application/atom+xml
application/javascript
application/json
application/rss+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/svg+xml
image/x-icon
text/css
text/plain
text/x-component;
ssl_certificate /usr/local/svmstack/nginx/ssl/ssl.crt;
ssl_certificate_key /usr/local/svmstack/nginx/ssl/ssl.key;
ssl_session_timeout 6m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
index index.php;
include services/custom/legacy-master-before-php-location-443.conf;
location ~ \.php$ {
include services/custom/legacy-master-inside-php-location-443.conf;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_read_timeout 3600;
fastcgi_pass unix:/usr/local/svmstack/fpm/socket/web.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param HTTPS $https;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
include services/custom/legacy-master-after-php-location-443.conf;
}
Я мог бы просто добавить приведенный ниже код в location
, однако в этом случае он запросит аутентификацию для всех файлов в /usr/local/pannel/www;
папка.
auth_basic "Restricted";
auth_basic_user_file /usr/local/pannel/htpasswd;
Как я могу создать новое местоположение в том же ключе для определенного URL-адреса, и в этом случае файл находится по адресу: /usr/local/pannel/www/admin/login.php
Мне нужно, чтобы аутентификация запрашивалась только при доступе к этому файлу (login.php).
Определите место, требующее аутентификации
location /admin/login.php {
auth_basic "Restricted";
auth_basic_user_file /usr/local/pannel/htpasswd;
# anything else required
}