Configuration Basics
Fluxheim dùng TOML. field không xác định sẽ bị từ chối, nên lỗi chính tả bị phát hiện trước khi restart.
Hình dạng chính
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
Với deployment multi-tenant, hãy bật [server.host_routing].strict = true. Host identity thiếu hoặc không hợp lệ sẽ trả về 400; host không xác định sẽ trả về 421 thay vì đi tới default site.
Cách tổ chức config
| Khu vực | Những gì thuộc về ở đó |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | Chính sách tương thích và phụ trợ TLS toàn cầu. |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | Prometheus và xuất trình nghe để có khả năng hiển thị hoạt động. |
Dạng route
[[vhosts.routes]]
name = "app"
path_prefix = "/app/"
methods = ["GET", "HEAD", "POST"]
max_request_body_bytes = "16MiB"
[vhosts.routes.proxy]
upstreams = ["127.0.0.1:3000"]
Một route có một matcher và một action. exact path được ưu tiên trước, then longest prefixes, then regex routes when regex support is enabled, then one fallback route.
Bảo mật phản hồi HTTP
Cấu hình bảo mật phản hồi HTTP là tùy chọn. Bắt đầu với baseline; chỉ sử dụng cách ly nhiều nguồn gốc sau khi kiểm tra mọi tập lệnh, phông chữ, hình ảnh, luồng đăng nhập và tài nguyên được nhúng.
[headers.response.hardening]
profile = "baseline"
| Hồ sơ | Nó làm gì |
|---|---|
off | Giữ các tiêu đề tăng cường chọn tham gia bị vô hiệu hóa. |
baseline | Thêm cách ly trình duyệt bảo thủ và mặc định chính sách tài nguyên phù hợp với hầu hết các trang web. |
cross-origin-isolated | Cho phép cách ly nhiều nguồn gốc nghiêm ngặt đối với các ứng dụng đã kiểm tra mọi phần phụ thuộc bên ngoài. |
Cả hai cấu hình đều không bật HSTS hoặc CSP. Định cấu hình chúng một cách riêng biệt sau khi thử nghiệm chúng trên trang web thực.
Siêu dữ liệu phản hồi dựa trên tiêu chuẩn
Siêu dữ liệu phản hồi bị tắt theo mặc định. Chỉ kích hoạt các trường bạn cần; Fluxheim lấy chúng từ kết quả bộ đệm thực tế, lỗi proxy và byte phản hồi cuối cùng mà không để lộ khóa bộ đệm, địa chỉ phụ trợ, tên DNS hoặc lỗi thô.
[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
| trường | Nó báo cáo cái gì |
|---|---|
Cache-Status | Các kết quả của bộ đệm RFC 9211 như truy cập, bỏ lỡ, chuyển tiếp cũ, xác nhận lại, hết hạn và bỏ qua. |
Proxy-Status | Chi tiết về lượng số thấp của RFC 9209 cho các lỗi do Fluxheim tạo ra. |
Content-Digest | RFC 9530 SHA-256 qua nội dung tin nhắn HTTP cuối cùng sau khi nén. |
Repr-Digest | SHA-256 chỉ khi Fluxheim giữ biểu diễn đã chọn hoàn chỉnh. |
Ảnh chụp nhanh trực tiếp và khôi phục
Ảnh chụp nhanh đã xác thực có thể xuất bản một ứng cử viên đã được xác thực, thay thế bộ định tuyến trực tiếp và quay lại mà không cần khởi động lại quá trình triển khai chỉ định tuyến thông thường. Mỗi yêu cầu nằm trên một thế hệ bộ định tuyến từ đầu đến cuối.
- Giữ cửa hàng ảnh chụp nhanh trong một thư mục riêng tư chuyên dụng; các thư mục không riêng tư và gốc hệ thống tập tin hiện có đều bị từ chối.
- Sử dụng nâng cấp quy trình khi các dịch vụ khám phá hoặc tình trạng cân bằng tải nền đang hoạt động.
- Chạy kiểm tra tính toàn vẹn của ảnh chụp nhanh sau khi xuất bản hoặc khôi phục và xác minh thế hệ đã chọn vẫn tồn tại khi khởi động lại.
Thói quen an toàn
- Run
fluxheim --check-configbefore reloads. - Sử dụng một vhost cho mỗi trang web hoặc ranh giới ứng dụng.
- Giữ secrets trong file, environment hoặc container secrets, không đặt trong public docs.
- Đặt config file và mọi parent directory hiện có dưới ownership đáng tin cậy, đồng thời không cho group hoặc user khác quyền ghi.
- Thay thế process khi thay đổi TLS, listener, stream, UDP, ACME, cache purging, tracing hoặc managed PHP-FPM process setting; routing thông thường và request-time policy có thể dùng snapshot reload.
- Sử dụng giới hạn cấp độ tuyến đường để tải lên và đường dẫn ứng dụng đắt tiền.
- Keep admin and metric listeners riêng tư.