Comments (5)
@Bekt
You don't have to expose any ports on your application containers. Instead, you need to expose and publish the ports on haproxy container.
from dockercloud-haproxy.
Hi @tifayuki, yeah that is what I am asking. The expose
property here is:
Expose ports without publishing them to the host machine - they’ll only be accessible to linked services. Only the internal port can be specified.
Anyway, the container internally exposes (not to the host) the two ports above. How can I tell haproxy to bind them to ports? More specific example:
app1:
image: app1
expose:
- '4000' # I want haproxy to proxy port 4444 to this container port (4000)
- '5000' # I want haproxy to proxy port 5555 to this container port (5000)
environment:
- VIRTUAL_HOST='example.com:4444, example.com:5555'
app2:
image: app1
expose:
- '4000' # I want haproxy to proxy port 6666 to this container port (4000)
- '5000' # I want haproxy to proxy port 7777 to this container port (5000)
environment:
- VIRTUAL_HOST='example.com:6666, example.com:7777'
lb:
image: dockercloud/haproxy
links:
- app1
- app2
ports:
- 4444:4444
- 5555:5555
- 6666:6666
- 7777:7777
Unfortunately, haproxy performs a roundrobin scheduling to one of the container ports. Instead, I need haproxy to proxy port 4444
to app1:4000
, 5555
to app1:5000
, 6666
to app2:4000
, and 7777
to app2:5000
.
from dockercloud-haproxy.
I don't think you can do this with the currently implementation of dockercloud/haproxy.
What you can do is the use different ports on the two different apps and then use TCP load balancing.
from dockercloud-haproxy.
Even then, dockercloud/haproxy only exposes one port per container, is that right?
from dockercloud-haproxy.
dockercloud/haproxy assumes that each container runs only one application.
If your container exposes more than one port, you need either 1) use EXCLUDE_PORTS to disable the port you don't want to publish, or 2) use TCP_PORTS to load balance the ports in TCP mode.
from dockercloud-haproxy.
Related Issues (20)
- Unnecessary redirect from https to https scheme in SSL termination mode HOT 2
- TCP load balancing doesn't work in Docker Swarm Mode
- Basic auth on a single service? HOT 2
- DNS resolution of loggers at startup
- Still experimental in Swarm Mode? HOT 8
- You should be able to indicate explicit Service/Port combos.
- Source balancing does not work on Docker for Mac
- Some question about multi-ports balance and ADDITIONAL_SERVICES
- Is this project dead? HOT 16
- How can i achieve the desired result with NGINX? Anybody else knows?
- Not working properly when using compose mode + service with fixed container names HOT 1
- Swarm service deploy mode = global is not supported
- Put stats on Virtual Host on a port 80 / 443
- Service Unavailable (503) Custom HTML
- Support option for this application
- We have a requirment of altering url for backend service at haproxy, how can we achieve
- tcp的1m超时怎么解决
- Questions about the mysterious project deprecation HOT 1
- imcompatible with docker compose 1.23 HOT 5
- Can not link service or container in compose mode HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dockercloud-haproxy.