Estoy tratando de configurar un proxy nginx dentro de docker que escuchará el tráfico web y luego, en función de los hosts virtuales, reenviará el tráfico a diferentes instancias de jenkins que también se ejecutan dentro de los contenedores de docker. Para orquestar esto, uso docker-compose.
He logrado:
- Inicie instancias de Jenkins y hable con ellas directamente
- Inicie nginx y configúrelo para que actúe como proxy de un servidor web que se ejecuta en otro host
Pero cuando trato de dejar que el servidor nginx enrute el tráfico dentro de la ventana acoplable, no puedo hacer que funcione, solo obtengo errores de puerta de enlace 502-Bag y el seguimiento en los registros de nginx:
[error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "localhost:8080"
Partes relevantes de mi docker-compose.yml:
httpd: build: httpd ports: - "8080:8080" links: - "server_jenkins" - "clients_jenkins" restart: alwaysserver_jenkins: image: jenkins ports: - "8081:8080" restart: alwaysclients_jenkins: image: jenkins ports: - "8082:8080" restart: always
El archivo httpd / Dockerfile se ve así:
FROM nginxRUN rm -rf /etc/nginxCOPY config /etc/nginx/
Y partes relevantes de nginx.conf se ve así (solo proxy de una instancia de jenkins):
http { server { listen 8080; server_name server.build.example.com; root /tmp; location / { proxy_pass http://127.0.0.1:8081; } } server { listen 8080; server_name clients.build.example.com; root /tmp; location / { proxy_pass http://127.0.0.1:8082; } }}
He probado las siguientes variantes de la primera URL de proxy_pass (y algunas otras que no recuerdo):
- http://server_jenkins:8081
- http://172.18.0.3:8081 (número de ip asignado a server_jenkins cuando se ejecuta con networking x-networking)
Cuando se ejecuta con --x-networking, cambié las declaraciones de enlace a container_name en docker-compose.yml
Versiones:
- ventana acoplable: 1.9.1, compilación a34a1d5
- docker-compose: 1.5.2, compilación 7240ff3
- SO: Debian 8 (corriendo dentro de Virtualbox)