Это сайт 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;
}
Однако я не уверен, что это должно быть ^~/частное
или еще...
Что я хочу заблокировать:
/частный
/частный/
/частный?
/ частный? что угодно
/частное/что угодно