Acesta este un site Next.js cu React. Rulați cu proxy NPM și Nginx către localhost.
Am următorul bloc de server nginx în virtualhost:
Server {
asculta 443 ssl;
nume_server dev.sekretyrozwojuosobistego.pl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers activat;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
client_max_body_size 15M;
Locație / {
proxy_pass http://localhost:4006;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_cache_bypass $http_upgrade;
}
}
Vreau să blochez accesul la /privat
Dacă adaug o nouă locație în acest fel, apar probleme:
Server {
asculta 443 ssl;
nume_server dev.sekretyrozwojuosobistego.pl;
ssl_certificate /etc/letsencrypt/live/sekretyrozwojuosobistego.pl/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/sekretyrozwojuosobistego.pl/privkey.pem; # gestionat de Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers activat;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
client_max_body_size 15M;
# return 301 https://$host$request_uri;
locație /privat {
auth_basic „Lucrări în curs”;
auth_basic_user_file /etc/nginx/restricted/.htpasswd;
proxy_pass http://localhost:4006;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_cache_bypass $http_upgrade;
}
Locație / {
# auth_basic „Lucrări în curs”;
# auth_basic_user_file /etc/nginx/restricted/.htpasswd;
proxy_pass http://localhost:4006;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_cache_bypass $http_upgrade;
}
}
Bun din această soluție:
- /private poate fi accesat doar prin parolă
Rău din această soluție:
Primesc astfel de erori:
Nu s-a încărcat resursa: serverul a răspuns cu starea 404 ()
webpack-917a29e0b939a068b2f9.js:1 Nu s-a încărcat resursa: serverul a răspuns cu starea 404 ()
_app-9d47fe6f5703c9f8e12f.js:1 Nu s-a încărcat resursa: serverul a răspuns cu starea 404 ()
_buildManifest.js:1 Nu s-a încărcat resursa: serverul a răspuns cu starea 404 ()
_ssgManifest.js:1 Nu s-a încărcat resursa: serverul a răspuns cu starea 404 ()
Dacă comentez /privat
blocați locația, erorile 404 nu se mai întâmplă.
O fac gresit? Cum să remediez asta?
EDIT: Am reușit să o fac să funcționeze astfel:
Locație / {
# auth_basic „Lucrări în curs”;
# auth_basic_user_file /etc/nginx/restricted/.htpasswd;
proxy_pass http://localhost:4006;
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_cache_bypass $http_upgrade;
}
locație ^~/privat {
auth_basic „Lucrări în curs”;
auth_basic_user_file /etc/nginx/restricted/.htpasswd;
proxy_pass http://localhost:4006;
}
Cu toate acestea, nu sunt sigur dacă ar trebui să fie ^~/privat
sau...
Ce vreau să blochez este:
/privat
/privat/
/privat?
/privat?orice
/privat/orice