[ 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)