Настройка http авторизации для nginx страниц на примере phpmyadmin

Для дополнительной защиты закроем phpmyadmin http авторизацией, оставив без пароля доступ лишь для подсети своего провайдера. Сначала создадим простенький пароль:

pwgen --capitalize --numerals --ambiguous --no-vowels 16 1

И добавим авторизационный файл юзера, указав этот пароль:

htpasswd -c /etc/nginx/auth.htpasswd user

nginx конфиг для phpmyadmin будет выглядеть так:

location /phpmyadmin {

    satisfy any;
    allow 91.240.190.0/23;
    deny all;


    auth_basic "Administrator’s Area";
    auth_basic_user_file /etc/nginx/auth.htpasswd;
    alias /usr/share/phpmyadmin;
    index index.php;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
    satisfy any;
    allow 91.240.190.0/23;
    deny all;

    auth_basic "Administrator’s Area";
    auth_basic_user_file /etc/nginx/auth.htpasswd;
    alias /usr/share/phpmyadmin/$1;
    error_page 404 @apache;
}
location ~ ^/phpmyadmin/(.+\.php)$ {
    satisfy any;
    allow 91.240.190.0/23;
    deny all;
    auth_basic "Administrator’s Area";
    auth_basic_user_file /etc/nginx/auth.htpasswd;
    alias /usr/share/phpmyadmin/$1;
    fastcgi_pass unix:/var/run/php-fpm.www-data.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
    error_page 502 = @apache;
    error_page 404 = @apache;
}
location @apache {
    error_log /dev/null crit;
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect http://127.0.0.1:8080 /;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
location ^~ /phpmyadmin/setup {
    deny all;
}

 

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *