[英]Laravel route() and url() functions return wrong subdomain
我正在使用Laravel和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.