Fluxheim/เอกสาร/Configuration Basics

Configuration Basics

Fluxheim ใช้ TOML field ที่ไม่รู้จักจะถูกปฏิเสธ จึงจับการสะกดผิดได้ก่อน restart

รูปร่างหลัก

[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"

[[vhosts]]
name = "site"
hosts = ["example.com"]

สำหรับระบบ multi-tenant ให้เปิด [server.host_routing].strict = true เพื่อให้ host identity ที่หายไปหรือไม่ถูกต้องส่งกลับ 400 และ host ที่ไม่รู้จักส่งกลับ 421 แทนที่จะไปยัง default site

การจัดระเบียบ config

พื้นที่อะไรอยู่ที่นั่น
serverListeners, global limits, trusted proxy handling, and redirects.
tlsGlobal TLS แบ็กเอนด์ and compatibility policy.
cacheProcess-wide cache defaults and storage tiers.
vhostsHostnames, routes, web roots, proxy settings, PHP, TLS, and access policy.
metricsPrometheus และส่งออกผู้ฟังเพื่อให้มองเห็นการดำเนินงานได้

รูปแบบ 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"]

route หนึ่งมี matcher หนึ่งตัวและ action หนึ่งตัว. exact path จะชนะก่อน, then longest prefixes, then regex routes when regex support is enabled, then one fallback route.

การรักษาความปลอดภัยการตอบสนอง HTTP

โปรไฟล์ความปลอดภัยในการตอบกลับ HTTP เป็นทางเลือก เริ่มต้นด้วย baseline; ใช้การแยกข้ามต้นทางหลังจากทดสอบทุกสคริปต์ แบบอักษร รูปภาพ ขั้นตอนการลงชื่อเข้าใช้ และทรัพยากรที่ฝังไว้เท่านั้น

[headers.response.hardening]
profile = "baseline"
โปรไฟล์มันทำอะไร
offปิดใช้งานส่วนหัวการทำให้แข็งที่เลือกไว้
baselineเพิ่มการแยกเบราว์เซอร์แบบอนุรักษ์นิยมและค่าเริ่มต้นของนโยบายทรัพยากรที่เหมาะสมสำหรับไซต์ส่วนใหญ่
cross-origin-isolatedเปิดใช้งานการแยกข้ามต้นทางที่เข้มงวดสำหรับแอปพลิเคชันที่ได้ทดสอบการขึ้นต่อกันภายนอกทุกครั้ง

ไม่มีโปรไฟล์ใดเปิดใช้งาน HSTS หรือ CSP กำหนดค่าแยกกันหลังจากทดสอบกับไซต์จริง

ข้อมูลเมตาการตอบสนองตามมาตรฐาน

ข้อมูลเมตาการตอบกลับถูกปิดใช้งานตามค่าเริ่มต้น เปิดใช้งานเฉพาะฟิลด์ที่คุณต้องการ Fluxheim ได้มาจากผลลัพธ์แคชจริง ความล้มเหลวของพร็อกซี และไบต์ตอบสนองสุดท้ายโดยไม่เปิดเผยคีย์แคช ที่อยู่แบ็กเอนด์ ชื่อ DNS หรือข้อผิดพลาดดิบ

[headers.response.metadata]
identifier = "edge-gateway"
cache_status = true
proxy_status = true
content_digest = true
repr_digest = true
ฟิลด์ข้อมูลที่รายงาน
Cache-Statusผลลัพธ์แคช RFC 9211 เช่น Hit, miss, การส่งต่อเก่า, การตรวจสอบความถูกต้องอีกครั้ง, การหมดอายุ และบายพาส
Proxy-Statusรายละเอียด RFC 9209 คาร์ดินัลลิตี้ต่ำสำหรับความล้มเหลวที่สร้างโดย Fluxheim
Content-DigestRFC 9530 SHA-256 บนเนื้อหาข้อความ HTTP สุดท้ายหลังจากการบีบอัด
Repr-DigestSHA-256 เฉพาะเมื่อ Fluxheim เก็บการแสดงที่เลือกไว้ทั้งหมดเท่านั้น

สแนปช็อตที่ใช้งานจริงและการย้อนกลับ

สแน็ปช็อตที่ผ่านการรับรองความถูกต้องสามารถเผยแพร่ตัวเลือกที่ผ่านการตรวจสอบแล้ว แทนที่เราเตอร์ที่ใช้งานจริง และย้อนกลับโดยไม่ต้องรีสตาร์ทการปรับใช้เฉพาะการกำหนดเส้นทางตามปกติ แต่ละคำขอยังคงอยู่ในรุ่นเราเตอร์หนึ่งรุ่นตั้งแต่ต้นจนจบ

  • เก็บสแน็ปช็อตไว้ในไดเร็กทอรีส่วนตัวเฉพาะ ไดเร็กทอรีที่ไม่ใช่ส่วนตัวและรูทระบบไฟล์ที่มีอยู่จะถูกปฏิเสธ
  • ใช้การอัปเกรดกระบวนการเมื่อความสมบูรณ์ของตัวโหลดบาลานซ์ในเบื้องหลังหรือบริการการค้นพบทำงานอยู่
  • เรียกใช้การตรวจสอบความสมบูรณ์ของสแนปชอตหลังจากการเผยแพร่หรือย้อนกลับ และตรวจสอบว่ารุ่นที่เลือกรอดจากการรีสตาร์ท
อ่านข้อกำหนดสแนปช็อตฉบับสมบูรณ์

แนวปฏิบัติที่ปลอดภัย

  • Run fluxheim --check-config before reloads.
  • ใช้หนึ่ง vhost ต่อไซต์หรือขอบเขตแอปพลิเคชัน
  • เก็บ secrets ไว้ในไฟล์ environment หรือ container secrets ไม่ใช่ใน public docs
  • เก็บ config file และ parent directory ทุกชั้นที่มีอยู่ภายใต้ ownership ที่เชื่อถือได้ และไม่อนุญาตให้ group หรือ user อื่นเขียนได้
  • ให้เปลี่ยน process เมื่อมีการเปลี่ยน TLS, listener, stream, UDP, ACME, cache purging, tracing หรือ managed PHP-FPM process setting ส่วน routing ปกติและ request-time policy ใช้ snapshot reload ได้
  • ใช้ขีดจำกัดระดับเส้นทางสำหรับการอัปโหลดและเส้นทางแอปพลิเคชันที่มีราคาแพง
  • Keep admin and เมตริก listeners ส่วนตัว.
ไทย