我使用Traefik作爲碼頭羣環境中的nginx服務前面的反向代理。這是我的搬運工,stack.yml:Nginx後面Traefik碼頭羣模式真正的ip
traefik:
image: traefik
command: -c /dev/null --web --docker --docker.swarmmode --docker.watch --docker.domain=domain --logLevel=DEBUG
ports:
- "8080:8080"
- "80:80"
- "443:443"
networks:
- app
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
placement:
constraints: [node.role == manager]
nginx:
image: nginx
networks:
- app
deploy:
labels:
traefik.port: 80
traefik.docker.network: app
traefik.frontend.rule: "Host:app.domain"
一切工作正常,但我需要真正的客戶端IP在我的Nginx的訪問日誌,而不是我得到的東西像10.0.1.37
如何得到我可以和真正的客戶端IP?
謝謝,
謝謝你的回答,那可以工作。我認爲mode'host'阻止Swarm路由機制:如果我的swarm中有2個節點,那麼實際上只有1個節點暴露traefik權利? –
我認爲你是對的(沒有檢查它),但由於路由網格使用入口網絡(我們繞過使用'主機'網絡的覆蓋網絡),所以traefik應該只顯示在它部署到的主機上。如果你測試它,如果你能更新我,我會很高興。 –
HA和LB不太好:( –