簡體   English   中英

Laravel route()和url()函數返回錯誤的子域

[英]Laravel route() and url() functions return wrong subdomain

我正在使用Laravel和Docker創建測試應用程序。

Docker容器

我有3個Docker容器:一個Apache,使用ProxyPass選擇其他兩個容器之一,以及兩個具有Laravel應用程序的容器。

我在/etc/hosts也有多余的行

127.0.0.1        auth.pi
127.0.0.1        worker.pi

我的主要(綠色)Apache的conf文件是

<VirtualHost *:80>
    ServerName auth.pi

    ProxyPass / http://auth:80/
</VirtualHost>

<VirtualHost *:80>
    ServerName worker.pi

    ProxyPass / http://worker:80/
</VirtualHost>

在紅色的.env中,我有

APP_URL=http://auth.pi

但是當我使用url('/')route(...)我的域名是http://auth/

我的紅色是Apache的conf

<VirtualHost *:80>
    ServerName auth.pi

    DocumentRoot /var/www/html/public

    <Directory "/var/www/html/public">
        AllowOverride all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

文件docker-compose.yml包含:

services:
  apache:
    build: "./apache"
    container_name: "pi-apache"
    links:
      - "auth-apache:auth"
    ...
  auth-apache:
    build: "./applications/auth/apache"
    container_name: "pi-auth-apache"
    ...

我做錯了什么? 為什么我的紅色Laravel應用認為他是http://auth/而不是http://auth.pi/

在blue的應用程序中,我具有相同的配置和相同的問題。

問題是格林的conf

VirtualHost部分,我必須添加

RequestHeader set Host "auth.pi"

ProxyPreserveHost On

auth.pi最終VirtualHost

<VirtualHost *:80>
    ServerName auth.pi

    RequestHeader set Host "auth.pi"

    ProxyPreserveHost On

    ProxyPass / http://auth:80/
</VirtualHost>

我還添加了docker-compose.yml

  auth-apache:
    build: "./applications/auth/apache"
    container_name: "pi-auth-apache"
    domainname: "pi"
    hostname: "auth"
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM