Рейтинг:0

Nginx - заблокировать доступ к подпапке

флаг tr

Это сайт Next.js с React. Запустите с прокси NPM и Nginx на локальный хост.

У меня есть следующий блок сервера nginx на виртуальном хосте:

сервер {
        слушать 443 ssl;
        server_name dev.sekretyrozwojuosobistego.pl;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers включен;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        client_max_body_size 15M;

        место расположения /  {
                proxy_pass http://localhost:4006;
                прокси_http_версия 1.1;
                proxy_set_header Обновить $http_upgrade;
                proxy_set_header Соединение «обновление»;
                proxy_set_header Хост $host;
                proxy_cache_bypass $http_upgrade;
        }

}

Я хочу заблокировать доступ к /частный

Если я добавлю новое местоположение таким образом, возникнут проблемы:

сервер {
        слушать 443 ssl;
        server_name dev.sekretyrozwojuosobistego.pl;
    ssl_certificate /etc/letsencrypt/live/sekretyrozwojuosobistego.pl/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/sekretyrozwojuosobistego.pl/privkey.pem; # под управлением Certbot

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers включен;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

        client_max_body_size 15M;


# вернуть 301 https://$host$request_uri;


        местоположение/частное {
               auth_basic "Работа в процессе";
               auth_basic_user_file /etc/nginx/restricted/.htpasswd;
               proxy_pass http://localhost:4006;

               прокси_http_версия 1.1;
               proxy_set_header Обновить $http_upgrade;
               proxy_set_header Соединение «обновление»;
               proxy_set_header Хост $host;
               proxy_cache_bypass $http_upgrade;
        }


        место расположения /  {
# auth_basic "Работа в процессе";
# auth_basic_user_file /etc/nginx/restricted/.htpasswd;
                proxy_pass http://localhost:4006;
                прокси_http_версия 1.1;
                proxy_set_header Обновить $http_upgrade;
                proxy_set_header Соединение «обновление»;
                proxy_set_header Хост $host;
                proxy_cache_bypass $http_upgrade;
        }

}

Хорошо этого решения:

  • /private доступен только по паролю

Плохое решение: Я получаю такие ошибки:

Не удалось загрузить ресурс: сервер ответил статусом 404 ()
webpack-917a29e0b939a068b2f9.js:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 ()
_app-9d47fe6f5703c9f8e12f.js:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 ()
_buildManifest.js:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 ()
_ssgManifest.js:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 ()

Если я закомментирую /частный location block, ошибки 404 перестают происходить.

Я делаю это неправильно? Как это исправить?

РЕДАКТИРОВАТЬ: я смог заставить его работать следующим образом:

            место расположения /  {
# auth_basic "Работа в процессе";
# auth_basic_user_file /etc/nginx/restricted/.htpasswd;
                    proxy_pass http://localhost:4006;
                    прокси_http_версия 1.1;
                    proxy_set_header Обновить $http_upgrade;
                    proxy_set_header Соединение «обновление»;
                    proxy_set_header Хост $host;
                    proxy_cache_bypass $http_upgrade;
            }
    
    
            местоположение ^~/частное {
                    auth_basic "Работа в процессе";
                    auth_basic_user_file /etc/nginx/restricted/.htpasswd;
                     proxy_pass http://localhost:4006;
           }

Однако я не уверен, что это должно быть ^~/частное или еще...

Что я хочу заблокировать: /частный /частный/ /частный? / частный? что угодно /частное/что угодно

djdomi avatar
флаг za
пожалуйста, поделитесь полным путем от отказавших ресурсов /private требуется приложением
флаг tr
Я только что добавил EDIT к исходному вопросу

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.