Add -http-port option to change the HTTP API port

This is useful when pushing consul to PaaS like
Cloud Foundry making the HTTP API easily routable.
This commit is contained in:
Andy Lo-A-Foe 2015-08-11 14:14:21 +02:00
parent 00e35cdc41
commit 7b5da2a240
2 changed files with 9 additions and 0 deletions

View File

@ -80,6 +80,7 @@ func (c *Command) readConfig() *Config {
cmdFlags.StringVar(&cmdConfig.ClientAddr, "client", "", "address to bind client listeners to (DNS, HTTP, HTTPS, RPC)")
cmdFlags.StringVar(&cmdConfig.BindAddr, "bind", "", "address to bind server listeners to")
cmdFlags.IntVar(&cmdConfig.HttpPort, "http-port", 0, "http port to use")
cmdFlags.StringVar(&cmdConfig.AdvertiseAddr, "advertise", "", "address to advertise instead of bind addr")
cmdFlags.StringVar(&cmdConfig.AdvertiseAddrWan, "advertise-wan", "", "address to advertise on wan instead of bind or advertise addr")

View File

@ -141,6 +141,11 @@ type Config struct {
// client services (DNS, HTTP, HTTPS, RPC)
ClientAddr string `mapstructure:"client_addr"`
// HttpPort the HTTP port to listen on.
// This is useful e.g. when deploying to Cloud Foundry to make
// the HTTP API easily routable
HttpPort int `mapstructure:"http_port"`
// BindAddr is used to control the address we bind to.
// If not specified, the first private IP we find is used.
// This controls the address we use for cluster facing
@ -849,6 +854,9 @@ func MergeConfig(a, b *Config) *Config {
if b.BindAddr != "" {
result.BindAddr = b.BindAddr
}
if b.HttpPort != 0 {
result.Ports.HTTP = b.HttpPort
}
if b.AdvertiseAddr != "" {
result.AdvertiseAddr = b.AdvertiseAddr
}