J'ai un proxy inverse nginx vers un serveur golang, chacun dans son propre conteneur docker et fonctionnant normalement. Je continue d'obtenir cette erreur dans nginx lorsque j'essaie de me connecter au conteneur Go, sur mon ordinateur Mac local et sur le serveur de production Linux Debian. Il travaillait sur ma machine Mac locale il y a une semaine et tout d'un coup, il ne plusProblème Docker avec le proxy inverse nginx vers le serveur golang
nginx_1 | 2017/09/28 01:29:54 [error] 5#5: *12 upstream timed out (110: Connection timed out) while connecting to upstream, client: 172.23.0.1, server: , request: "GET /api/about HTTP/1.1", upstream: "http://67.199.248.12:8080/api/about", host: "localhost"
quelqu'un peut expliquer ce qui se passe ici? Qu'est-ce que 67.199.248.12 et pourquoi Nginx ne peut-il pas pinguer/se connecter au conteneur Go?
Voici ce qui existe dans/etc/hosts dans Go contenant
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.23.0.5 31f4103f002c
Voici mon nginx.conf
upstream gogo {
server go:8080 weight=10 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
location /api/ {
resolver 127.0.0.1 valid=30s;
proxy_pass http://gogo;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
J'utilise docker-Compose v3 pour exécuter nginx et docker
nginx:
restart: always
image: nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
command: /bin/bash -c "nginx -g 'daemon off;'"
go:
build:
context: ./api
expose:
- "8080"
depends_on:
- nginx
go code:
func main() {
router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/api/about", About).Methods("GET")
log.Fatal(http.ListenAndServe(":8080", router))
}
Comment utilisez-vous chaque conteneur? – BMitch
Il semble que le conteneur nginx est incapable de résoudre l'adresse du conteneur Go. Comment gérez-vous la gestion de réseau (essaim, composer, découverte de service, env vars ...)? – Opnauticus
en utilisant docker-compose – user3226932