Caddy proxy PHP-FPM docker container
Caddy 直接运行在主机上,反向代理容器中的 php-fpm 服务。这种方式的好处是不需要把 PHP 代码装到容器中也能正常运行。
创建 php-fpm 容器
sudo docker run -d --name php7-fpm \
-p 9000:9000 \
-v $PWD/html:/var/www/html \
--user www-data \
php:7-fpm
Caddyfile 配置
Caddy 反向代理容器中的 php-fpm
服务,在配置文件中 root
应该填写 php-fpm
容器中映射的路径,即 /var/www/html
,可以使用 /var/www/html/public
子目录形式。但要设置成 $PWD/html
是会报错的。
然而,程序代码应该正常放到容器映射的主机路径,即 $PWD/html
。
test.abc.cn {
tls abc@gmail.com
root /var/www/html/public
index index.php
fastcgi / 127.0.0.1:9000 php
rewrite {
r .*
ext /
to /index.php?{query}
}
}
注意:配置中的
rewrite
规则适用于Laravel
框架。