proxy - Using Finagle's clientbuilder, how do I set the host externally? -


i building simple proxy point server. works need find way able set hosts in clientbuilder externally using docker or maybe sort of configuration file. here have:

import java.net.inetsocketaddress import com.twitter.finagle.service import com.twitter.finagle.builder.{serverbuilder, clientbuilder} import com.twitter.finagle.http.{request, http} import com.twitter.util.future import org.jboss.netty.handler.codec.http._  object proxy extends app {    val client: service[httprequest, httpresponse] = {   clientbuilder()     .codec(http())     .hosts("localhost:8888")     .hostconnectionlimit(1)     .build()   }    val server = {     serverbuilder()       .codec(http())       .bindto(new inetsocketaddress(8080))       .name("trogdor")       .build(client)   } } 

if know of way or have ideas please let me know!

if want running simple proxy in docker container , manage target host ip dynamically, can try pass target host ip through environment variable , change code this

import java.net.inetsocketaddress import com.twitter.finagle.service import com.twitter.finagle.builder.{serverbuilder, clientbuilder} import com.twitter.finagle.http.{request, http} import com.twitter.util.future import org.jboss.netty.handler.codec.http._  object proxy extends app {   val target_host = sys.env.get("target_host")    val client: service[httprequest, httpresponse] = {   clientbuilder()     .codec(http())     .hosts(target_host.getorelse("127.0.0.1:8888"))     .hostconnectionlimit(1)     .build()   }    val server = {     serverbuilder()       .codec(http())       .bindto(new inetsocketaddress(8080))       .name("trogdor")       .build(client)   } } 

this let code read system environment variable target_host. when done part, can try start docker container adding following parameter docker run command:

-e "target_host=127.0.0.1:8090"

for example docker run -e "target_host=127.0.0.1:8090" <docker image> <docker command>

note can change 127.0.0.1:8090 target host.


Comments