[ 
https://issues.apache.org/jira/browse/KNOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14192085#comment-14192085
 ] 

ASF subversion and git services commented on KNOX-464:
------------------------------------------------------

Commit f1f4fa2239c2218405e19d65bb12f89ee31305e8 in knox's branch 
refs/heads/master from [~kevin.minder]
[ https://git-wip-us.apache.org/repos/asf?p=knox.git;h=f1f4fa2 ]

KNOX-464: Location headers have wrong hostname when used behind load balancer


> Location headers have wrong hostname when used behind load balancer
> -------------------------------------------------------------------
>
>                 Key: KNOX-464
>                 URL: https://issues.apache.org/jira/browse/KNOX-464
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 0.5.0
>            Reporter: Kevin Minder
>            Assignee: Kevin Minder
>            Priority: Critical
>             Fix For: 0.6.0
>
>
> When you make a request like this that is routed through a load balancer 
> {code}
> curl -i -u guest:guest-password -X PUT 
> 'http://localhost:8080/gateway/default/webhdfs/v1/tmp/LICENSE?op=CREATE'
> {code}
> Knox currently will return something like this
> {code}
> https://backend:8443/gateway/default/webhdfs/data/v1/webhdfs/v1/tmp/LICENSE?_=AAAACAAAABAAAACQccBhGqTbDtfqAt7vzK1H39SnCZo7W14qCIs67ctZAJDXr9fEyJbo1H9AO8prLGdV8Jmz5TO_novslggJwY7E9Vep4eFP0auaxVpfBz4QG-ktSuviEU5aHl8om_SkuGLOwSDjBRZASXrV1huqKU-K_mKkCaPnC0NkCpRQRL0LMkGvB8yrl6_1vNkaoXTxwjm0kp1EhgniovHJVmfcPbjKmmoh-boVy1cj
> {code}
> To avoid confusion the 'backend' in the URL above is in no way correct but is 
> in part caused because nginx is sending that value in the Host header.  That 
> is peculiar to nginx and could be fixed with nginx configuration.
> The issue here is that Knox used the hostname from the Host header and the 
> local port.  I'm not exactly sure what the right answer it but I'm sure 
> mixing is bad.  We should either be using the information from the Host 
> header or the information from the local endpoint of the socket.  The way 
> Knox was working before the fix for KNOX-439 was to use the local endpoint 
> information so I'm going to fix this issue making that assumption.  
> I used nginx to reproduce the issue.  This is the final configured I used to 
> verify the fix.  Note that the 'proxy_redirect' would need to be removed to 
> see exactly what Knox is returning and compare to what is shown above.
> {code}
> worker_processes  1;
> events {
>     worker_connections  1024;
> }
> http {
>     include       mime.types;
>     default_type  application/octet-stream;
>     sendfile        on;
>     keepalive_timeout  65;
>     upstream backend {
>         server c6402.ambari.apache.org:8443;
>     }
>     server {
>         listen       8080;
>         server_name  localhost;
>         location / {
>             proxy_pass      https://backend;
>             proxy_redirect  https://c6402.ambari.apache.org:8443/ 
> http://$host:$server_port/;
>         }
>     }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to