Configuration Basics
Fluxheim TOML ব্যবহার করে। অজানা field বাতিল করা হয়, তাই বানান ভুল 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 | গ্লোবাল 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 path আগে 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 | RFC 9209 Fluxheim দ্বারা জেনারেট করা ব্যর্থতার জন্য নিম্ন-কার্ডিনালিটির বিবরণ। |
Content-Digest | RFC 9530 SHA-256 কম্প্রেশনের পরে চূড়ান্ত HTTP বার্তা সামগ্রীর উপরে। |
Repr-Digest | SHA-256 শুধুমাত্র যখন Fluxheim সম্পূর্ণ নির্বাচিত উপস্থাপনা ধারণ করে। |
লাইভ স্ন্যাপশট এবং রোলব্যাক
প্রমাণীকৃত স্ন্যাপশটগুলি একটি বৈধ প্রার্থী প্রকাশ করতে পারে, লাইভ রাউটার প্রতিস্থাপন করতে পারে এবং সাধারণ রাউটিং-কেবল স্থাপনাগুলি পুনরায় চালু না করেই ফিরে যেতে পারে। প্রতিটি অনুরোধ শুরু থেকে শেষ পর্যন্ত একটি রাউটার জেনারেশনে থাকে।
- একটি ডেডিকেটেড ব্যক্তিগত ডিরেক্টরিতে স্ন্যাপশট স্টোর রাখুন; বিদ্যমান নন-প্রাইভেট ডিরেক্টরি এবং ফাইল সিস্টেম রুট প্রত্যাখ্যান করা হয়।
- ব্যাকগ্রাউন্ড লোড-ব্যালেন্সার স্বাস্থ্য বা আবিষ্কার পরিষেবা সক্রিয় থাকলে একটি প্রক্রিয়া আপগ্রেড ব্যবহার করুন।
- প্রকাশনা বা রোলব্যাক করার পরে স্ন্যাপশট অখণ্ডতা পরীক্ষা চালান এবং যাচাই করুন যে নির্বাচিত প্রজন্মটি পুনরায় চালু হয়েছে।
নিরাপদ অভ্যাস
- Run
fluxheim --check-configbefore reloads. - সাইট বা অ্যাপ্লিকেশন সীমানা প্রতি একটি vhost ব্যবহার করুন.
- secret file, environment বা container secret-এ রাখুন, public 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 listener private রাখুন.