
Tengo algunos problemas con Nginx y Jenkins (Hudson). Estoy intentando utilizar Nginx como proxy inverso para la instancia de Jenkins con autenticación básica HTTP.
Funciona hasta ahora, pero no tengo idea de cómo pasar el encabezado con el nombre de usuario de autenticación.
location / {
auth_basic "Restricted";
auth_basic_user_file /usr/share/nginx/.htpasswd;
sendfile off;
proxy_pass http://192.168.178.102:8080;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-User $http_authorization;
proxy_max_temp_file_size 0;
#this is the maximum upload size
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
Respuesta1
Intente agregar estas directivas a su bloque de ubicación
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
Respuesta2
Para que esto funcione con el complemento de autenticación de proxy inverso de Jenkins:
proxy_set_header Authorization "";
proxy_set_header X-Forwarded-User $remote_user;
Si no restablece Authorization
el encabezado, nginx lo reenviará de forma predeterminada y, al habilitar el complemento de autenticación de proxy inverso, Jenkins (jetty) intentará volver a autenticar al usuario y fallará.
nginx versión 1.12.1, Jenkins 2.113.