You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让局域网设备访问仅信任127.0.0.1的Docker化Symfony站点

局域网访问Docker部署的Symfony站点问题求助

我尝试通过局域网内的手机访问docker-compose部署的Symfony开发站点(地址为https://lan_server_ip:8000)以检查CSS效果,却遭遇诸多问题,希望找到简单的代理类方案实现局域网访问。

核心问题:Symfony应用仅信任127.0.0.1这一个IP,且我不想修改应用代码——为设备添加IP不切实际,尤其是面对动态IP的情况。

我的设想:

  • 新增代理接口替代主Nginx,让站点认为所有请求均来自主机127.0.0.1
  • 修改现有Nginx配置,新增server或location规则。我曾尝试改写请求头,但未成功

目前我使用浏览器响应式设计模式,但效果远不够准确及时,只能通过生产站点排查问题。我考虑新增容器处理此需求,但不知如何实现。

当前docker-compose.yaml配置

version: "3"
services:

  nginx:
    container_name: nginx
    image: "${NGINX_IMAGE}"
    build: build/nginx
    restart: always
    env_file: .env
    ports:
      - "8000:443"
    volumes:
      - "${APP_HOST_NGINX_CONF}:${APP_CONTAINER_NGINX_CONF}:ro"
      - "${APP_HOST_CERTS}:${APP_CONTAINER_CERTS}"
      - "${APP_HOST_DIR}/public:${APP_CONTAINER_DIR}/public:ro"
      - "/etc/localtime:/etc/localtime:ro"
    networks:
      app_network:
    depends_on:
      - app

  app:
    container_name: app
    image: "${APP_IMAGE}"
    restart: always
    build: build/app
    env_file: .env
    networks:
      app_network:
    volumes:
      - type: bind
        source: ${APP_HOST_DIR}
        target: ${APP_CONTAINER_DIR}
      - type: bind
        source: ${PHP_INI}
        target: /usr/local/etc/php/php.ini
      - type: bind
        source: /etc/localtime
        target: /etc/localtime:ro
    depends_on:
      - database

  database:
    container_name: mariadb
    image: "mariadb:${MARIADB_VERSION}"
    restart: always
    env_file: .env
    volumes:
      - "${SQL_INIT}:/docker-entrypoint-initdb.d"
      - type: bind
        source: ${MARIADB_DATA_DIR}
        target: /var/lib/mysql
      - type: bind
        source: ${MARIADB_LOG_DIR}
        target: /var/logs/mysql
      - type: bind
        source: ${MARIADB_CERTS_DIR}
        target: /etc/certs/
      - type: bind
        source: /etc/localtime
        target: /etc/localtime:ro
    ports:
      - "3306:3306"
    networks:
      app_network:
    command: [  
                "mysqld",
                "--character-set-server=utf8mb4",
                "--collation-server=utf8mb4_general_ci",
                "--require_secure_transport=OFF",
                "--bind-address=0.0.0.0",
                "--ssl-key=/etc/certs/server-key.pem",
                "--ssl-cert=/etc/certs/server-cert.pem",
                "--ssl-ca=/etc/certs/ca-cert.pem",
              ]

networks:
  app_network:

当前nginx.conf配置

#./images/nginx/build/default.conf
server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name  127.0.0.1;
    ssl_certificate /etc/nginx/certs/dev.crt;
    ssl_certificate_key /etc/nginx/certs/dev.key;
    index index.php index.html;
    root /var/www/app/public;

    client_max_body_size 128M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    error_log /var/log/nginx/app.error.log;
    access_log /var/log/nginx/app.access.log;
}

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:55:21