1. The problem I’m having:
I am trying to get HTTP\2 working with Google Cloud Run. I have it working with HTTP\2 disabled, but can’t seem to get it working enabled. In NGINX, I got this working with the X-Forwarded-Proto header, but that doesn’t seem to work.
2. Error messages and/or full log output:
Bad Gateway
3. Caddy version:
v2.CustomVersion=FrankenPHP
4. How I installed and ran Caddy:
I am running Caddy through FrankenPHP
a. System environment:
Alpine Linux / Docker
d. My complete Caddy config:
{
{$CADDY_GLOBAL_OPTIONS}
http_port 8080
frankenphp {
#worker /path/to/your/worker.php
{$FRANKENPHP_CONFIG}
}
# https://caddyserver.com/docs/caddyfile/directives#sorting-algorithm
order mercure after encode
order vulcain after reverse_proxy
order php_server before file_server
order php before file_server
}
{$CADDY_EXTRA_CONFIG}
:8080 {
log {
# Redact the authorization query parameter that can be set by Mercure
format filter {
wrap console
fields {
uri query {
replace authorization REDACTED
}
}
}
}
root * public/
encode zstd gzip
{$CADDY_SERVER_EXTRA_DIRECTIVES}
header X-Forwarded-Proto http
php_server
}
Dockerfile:
# Composer Build
FROM composer:latest AS build
# App Build
FROM dunglas/frankenphp
WORKDIR /app
ENV SERVER_NAME=:8080
ENV PORT=8080
RUN sed -i 's/{$SERVER_NAME:localhost}/:'"$PORT"'/' /etc/caddy/Caddyfile && \
sed -i '/CADDY_GLOBAL_OPTIONS/a http_port '"$PORT" /etc/caddy/Caddyfile && \
sed -i '/CADDY_SERVER_EXTRA_DIRECTIVES/a\\theader X-Forwarded-Proto https\n' /etc/caddy/Caddyfile
# Add application
COPY . .
# Add Composer
COPY --from=build /usr/bin/composer /usr/bin/composer
# Install Dependencies
RUN composer install --optimize-autoloader --no-dev