Configuration Basics
Fluxheim TOML का उपयोग करता है। अज्ञात fields अस्वीकार किए जाते हैं, इसलिए वर्तनी की गलतियाँ restart से पहले पकड़ी जाती हैं।
मुख्य आकृति
[server]
listen = ["0.0.0.0:8080"]
default_vhost = "site"
[[vhosts]]
name = "site"
hosts = ["example.com"]
multi-tenant deployment में [server.host_routing].strict = true सक्षम करें। इससे host identity न मिलने या अमान्य होने पर 400 और अज्ञात host पर default site के बजाय 421 मिलता है।
config कैसे व्यवस्थित है
| क्षेत्र | वहाँ क्या आता है |
|---|---|
server | Listeners, global limits, trusted proxy handling, and redirects. |
tls | वैश्विक टीएलएस बैकएंड और अनुकूलता नीति। |
cache | Process-wide cache defaults and storage tiers. |
vhosts | Hostnames, routes, web roots, proxy settings, PHP, TLS, and access policy. |
metrics | प्रोमेथियस और परिचालन दृश्यता के लिए श्रोताओं को निर्यात करें। |
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 paths पहले match होते हैं, 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 कैश परिणाम जैसे हिट, मिस, बासी अग्रेषण, पुनर्वैधीकरण, समाप्ति और बायपास। |
Proxy-Status | Fluxheim द्वारा उत्पन्न विफलताओं के लिए RFC 9209 कम-कार्डिनैलिटी विवरण। |
Content-Digest | संपीड़न के बाद अंतिम HTTP संदेश सामग्री पर RFC 9530 SHA-256। |
Repr-Digest | SHA-256 केवल तभी जब Fluxheim पूर्ण चयनित प्रतिनिधित्व रखता हो। |
लाइव स्नैपशॉट और रोलबैक
प्रमाणित स्नैपशॉट एक मान्य उम्मीदवार को प्रकाशित कर सकते हैं, लाइव राउटर को प्रतिस्थापित कर सकते हैं, और सामान्य रूटिंग-केवल तैनाती को पुनरारंभ किए बिना वापस रोल कर सकते हैं। प्रत्येक अनुरोध प्रारंभ से अंत तक एक राउटर पीढ़ी पर रहता है।
- स्नैपशॉट स्टोर को एक समर्पित निजी निर्देशिका में रखें; मौजूदा गैर-निजी निर्देशिकाएँ और फ़ाइल सिस्टम रूट अस्वीकृत कर दिए जाते हैं।
- जब पृष्ठभूमि लोड-बैलेंसर स्वास्थ्य या खोज सेवाएँ सक्रिय हों तो प्रक्रिया अपग्रेड का उपयोग करें।
- प्रकाशन या रोलबैक के बाद स्नैपशॉट अखंडता जांच चलाएँ और सत्यापित करें कि चयनित पीढ़ी पुनः आरंभ होती है।
सुरक्षित आदतें
- Run
fluxheim --check-configbefore reloads. - प्रति साइट या एप्लिकेशन सीमा पर एक वीहोस्ट का उपयोग करें।
- secrets को files, environment या container secrets में रखें, सार्वजनिक docs में नहीं।
- config file और उसकी हर मौजूदा parent directory को विश्वसनीय ownership में रखें तथा group या अन्य user को लिखने की अनुमति न दें।
- TLS, listener, stream, UDP, ACME, cache purging, tracing या managed PHP-FPM process setting बदलने पर process को बदलें; सामान्य routing और request-time policy के लिए snapshot reload इस्तेमाल किया जा सकता है।
- अपलोड और महंगे एप्लिकेशन पथों के लिए रूट-स्तरीय सीमाओं का उपयोग करें।
- admin और metrics listeners को private रखें.