Creé un sitio web con next.js y después de la implementación en mi propio servidor de prueba, todo funcionó como se esperaba. Como hay un área de administración, hice una configuración para proteger la url /admin usando la autenticación básica nginx. Estos son mis pasos :
apache2-utils usando sudo apt-get install apache2-utils en Ubuntu 18.04htpasswd /etc/nginx/.htpasswd myusername . Después de hacer clic en enter , proporcioné una passwordusename:hashedpassword Hice la siguiente configuración en nginx
location /admin { auth_basic "Zone protege"; auth_basic_user_file /etc/nginx/.htpasswd; }
Aquí está mi configuración completa para esa aplicación. Pero he ocultado otros detalles de configuración (TLS, redireccionamiento de http, etc.):
server { server_name mydomainename.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } location /admin { auth_basic "Zone protege"; auth_basic_user_file /etc/nginx/.htpasswd; try_files $uri $uri/ =404; } } Cuando trato de acceder a la página protegida, obtengo esto: 
Cuando toco malas credenciales, no obtengo la página de solicitud como se esperaba.
Entonces, cuando toco las credenciales esperadas, obtengo un 404 : 
Ya he leído las siguientes soluciones: NGINX auth_basic me está dando un mensaje '404 no encontrado'... NGINX htpasswd 404 no encontrado
También probé otras soluciones, aunque no están marcadas como solución al problema.
Prueba esto ?
server { server_name mydomainename.com; auth_basic "Zone protege"; auth_basic_user_file /etc/nginx/.htpasswd; location / { auth_basic off; proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } location /admin { #auth_basic on; proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }