我是haproxy的新手,我试图弄清楚如何做似乎很简单的事情。我想代理一个tomcat上下文。
例如http://bobsautomotive.com:8080/HelloWorld
这是我的haproxy配置:
global
daemon
maxconn 256
log 127.0.0.1 local0
defaults
mode http
option httplog
option logasap
log global
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
option redispatch
option httpclose
option forwardfor
cookie JSESSIONID prefix
server one tomcat.bobsautomotive.com:8009 cookie tomcat1 check
stats uri /admin?stats
stats realm haproxy
stats scope .
可以很好地进入Tomcat主页。但是,如果我尝试将其更改为使用类似以下的上下文:
服务器一tomcat.bobsautomotive.com:8009/han cookie tomcat1检查
将不起作用...
有什么想法吗?谢谢
没有人回答这个问题,但是答案在于在tomcat server.xml中设置默认主机
<Engine defaultHost="spaceman" jvmRoute="s1" name="Catalina>
<Host appBase="webapps" name="spaceman">
<Context docBase="quoteEngine" path="" reloadable="false" source="org.eclipse.jst.jee.server:spaceman"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." resolveHosts="false" suffix=".txt"/>
</Host>
</Engine>
您应将哪个值提供给defaultHost?与用于将流量从HAProxy路由到Tomcat的dns名称相同(在您的情况下为bobsautomotive),或其他名称?
谢谢