Nginx와 Jenkins (Hudson)에 문제가 있습니다. HTTP 기본 인증으로 Jenkins 인스턴스의 Nginx를 리버스 프록시로 사용하려고합니다.
지금까지 작동하지만 인증 사용자 이름으로 헤더를 전달하는 방법을 모르겠습니다.
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;
}
답변
이 지시문을 위치 블록에 추가하십시오
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
답변
Jenkins 리버스 프록시 인증 플러그인과 함께 작동하게하려면 다음을 수행하십시오.
proxy_set_header Authorization "";
proxy_set_header X-Forwarded-User $remote_user;
Authorization
헤더를 재설정하지 않으면 nginx는 기본적으로이를 전달하고 리버스 프록시 인증 플러그인을 활성화하면 Jenkins (jetty)가 사용자를 다시 인증하려고 시도하고 실패합니다.
nginx 버전 1.12.1, Jenkins 2.113.