为什么 php-fpm 获取了错误的客户端 IP 地址?

为什么 php-fpm 获取了错误的客户端 IP 地址?

再会!

我有两个 docker 容器php-fpmnginx我需要获取客户端的真实 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 地址传递给子网。

相关内容