52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
# snippets/ipxe
|
|
# iPXE Boot Server reverse proxy configuration
|
|
# Import in Caddyfile with: import snippets/ipxe
|
|
|
|
(ipxe-headers) {
|
|
header {
|
|
# Disable caching for menus (dynamic content)
|
|
Cache-Control "no-cache, no-store, must-revalidate"
|
|
Pragma "no-cache"
|
|
-Server
|
|
}
|
|
}
|
|
|
|
(ipxe-boot-headers) {
|
|
header {
|
|
# Cache boot files aggressively (kernels, initramfs rarely change)
|
|
Cache-Control "public, max-age=86400"
|
|
-Server
|
|
}
|
|
}
|
|
|
|
(ipxe-image-headers) {
|
|
header {
|
|
# Moderate caching for images
|
|
Cache-Control "public, max-age=3600"
|
|
# Support range requests for large files
|
|
Accept-Ranges "bytes"
|
|
-Server
|
|
}
|
|
}
|
|
|
|
(ipxe-upstream) {
|
|
# Reverse proxy to iPXE container
|
|
reverse_proxy ipxe-server:8080 {
|
|
# Timeouts for large file transfers
|
|
transport http {
|
|
response_header_timeout 30s
|
|
read_timeout 300s
|
|
write_timeout 300s
|
|
}
|
|
|
|
# Health check
|
|
health_uri /health
|
|
health_interval 30s
|
|
health_timeout 5s
|
|
|
|
# Fail fast if unhealthy
|
|
fail_duration 30s
|
|
}
|
|
}
|
|
|