
Ejecuté nginx en mi servidor y recientemente instalé Piwik con esta configuración:
server {
listen 443 ssl spdy;
server_name analytics.example.org;
root /srv/www/analytics.example.org;
index index.php;
ssl_certificate ssl-certificates/wildcard.example.org.crt;
ssl_certificate_key ssl-certificates/wildcard.example.org.key;
access_log /var/log/nginx/analytics.example.org_access.log;
error_log /var/log/nginx/analytics.example.org_error.log;
auth_basic "HTTP Basic Authentication";
auth_basic_user_file htpasswd/example;
satisfy any;
include example_ip;
deny all;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires max;
}
location = /robots.txt {
return 200 "User-agent: *\nDisallow: /\n";
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
try_files $uri $uri/index.php =404;
include fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location = /piwik.js {
satisfy any;
allow all;
auth_basic off;
try_files $uri =404;
}
}
Estoy intentando desactivar la autenticación básica para /piwik.js ya que se solicita desde la propia aplicación y siempre solicita el nombre de usuario y la contraseña.
¿Qué estoy haciendo mal aquí?
--- Actualización 1 ---
Configuración actualizada:
...
location = /piwik.js {
satisfy any;
allow all;
auth_basic off;
try_files $uri =404;
}
location / {
auth_basic "Bitte authentifiziere dich.";
auth_basic_user_file htpasswd/pass;
satisfy any;
include pass_ip;
deny all;
try_files $uri $uri/ /index.php?$args;
}
...
Ahora me permite acceder a piwik.js desde la aplicación y también solicita autenticación básica para Analytics.example.org. Sin embargo, cuando hago clic en cancelar, se carga parte del sitio web, la siguiente autenticación básica, cancelación, carga, etc.
--- Actualización 2 ---
También agregué las cosas de autenticación básica a la location ~ .php$
directiva y ahora está funcionando, sin embargo, tenerlo en dos lugares no parece correcto. ¿De todos modos puedo hacerlo mejor?
Respuesta1
Tuve un desafío similar recientemente y tus bloques de ubicación ahora parecen correctos:
Nginx: Activación/desactivación selectiva de autenticación básica según el ámbito
El flujo persistente probablemente se deba al almacenamiento en caché del navegador, lo que me provocó horas de pérdida de tiempo también en este tema. Siempre que cambie cualquier configuración de autenticación http, cierre el navegador por completo, idealmente reinícielo, luego vuelva a abrir la página y vea si la nueva configuración funciona como se esperaba. Eso funcionó para mí.
Habría agregado esto como comentario a la respuesta anterior pero aún no tengo suficientes puntos de representación.