[ https://issues.apache.org/jira/browse/CAMEL-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232184#comment-15232184 ]
ASF GitHub Bot commented on CAMEL-9462: --------------------------------------- Github user erwelch closed the pull request at: https://github.com/apache/camel/pull/935 > HTTP 1.1 Host header be dealt wrongly in proxy & load balancer > -------------------------------------------------------------- > > Key: CAMEL-9462 > URL: https://issues.apache.org/jira/browse/CAMEL-9462 > Project: Camel > Issue Type: Bug > Components: camel-http, camel-http4 > Affects Versions: 2.9.5, 2.10.3, 2.11.0 > Reporter: Ian Hu > Assignee: Andrea Cosentino > Fix For: 2.17.1, 2.18.0 > > > I have wrote code below make camel as a load balancer, but camel-http4(and > the camel-http, etc) deal the http header Host wrongly, it replace the Host > header with the host name of the backend of balancer, that make the backend > generate the wrong link. > > {code:title=Main.java|borderStyle=solid} > import org.apache.camel.impl.DefaultCamelContext; > import org.apache.camel.model.RouteDefinition; > public class Main { > public static void main(String[] args) throws Exception { > DefaultCamelContext context = new DefaultCamelContext(); > RouteDefinition route = new RouteDefinition(); > route.from("jetty:http://0.0.0.0:8080/?matchOnUriPrefix=true") > .loadBalance().roundRobin() > > .to("http4://127.0.0.1:8081/?bridgeEndpoint=true&throwExceptionOnFailure=false") > > .to("http4://127.0.0.1:8082/?bridgeEndpoint=true&throwExceptionOnFailure=false"); > // > context.addRouteDefinition(route); > context.start(); > } > } > {code} > I have view the code and found a fix of > [https://issues.apache.org/jira/browse/CAMEL-5757](See the commit), it's > commits simply removed the host header > [https://fisheye6.atlassian.com/browse/camel-git/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java?hb=true#to106]. > and I really do not think it should be dealt like that. > Some backend will use the Host header to generate link, and when the Host > header removed and then it be set to the backend's host, the backend got the > wrong Host, and generate the wrong link. > I expect the link should be http://localhost:8080/web but it generate > http://127.0.0.1:8081/web or http://127.0.0.1:8082/web when I view the page > with the url http://localhost:8080 -- This message was sent by Atlassian JIRA (v6.3.4#6332)