再会!
我有两个 docker 容器php-fpm
,nginx
我需要获取客户端的真实 ip 地址,但是我得到的不是 127.0.0.1(localhost),而是 172.0.0.1,这可能是什么问题?
下面我标出了我正在使用的配置以及一张图片,以便您更好地理解我。
version: "3.9"
services:
nginx:
build: ./nginx
ports:
- 80:80
volumes:
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf/hosts:/etc/hosts
- ./app:/var/www/app
networks:
- app_network
php-fpm:
build: ./phpfpm
depends_on:
- nginx
volumes:
- ./phpfpm/conf/www.conf:/usr/local/etc/php-fpm.d/www.conf
- ./phpfpm/conf/hosts:/etc/hosts
- ./app:/var/www/app
networks:
- app_network
networks:
app_network:
ipam:
driver: default
config:
- subnet: "172.0.0.0/24"
- subnet: "2001:3984:3989::/64"
如您所见,我已将主机端口 80 与容器端口 80 合并,因此我希望传递正确的 IP。我做错了什么?我将不胜感激任何答案,提前谢谢!
答案1
你所要求的是火星包裹。一个正常的内核不会让你这么做。环回是虚拟的并且严格是本地的。
当您访问该 IP 的映射端口时,您应该能够将您的其他 IP 地址传递给子网。