nginx playground
(jvns.ca)<p>- nginx settings को मनचाहे तरीके से बदलकर test करने योग्य playground <br />
→ config और curl/http command दर्ज करके Run दबाने पर execute होता है<br />
→ execute किए गए command का result और nginx error log दिखाता है <br />
- Vue.js front + Go backend (Gist में सिर्फ server code public है)<br />
- Run button दबाने पर Go backend ये काम करता है <br />
→ settings file को temp file के रूप में save करता है<br />
→ नया network namespace बनाता है <br />
ip netns add $RANDOM_NAMESPACE_NAME<br />
→ go-httpbin को port 777 पर चलाता है<br />
→ nginx शुरू करता है<br />
→ nginx के सही से चलने तक 100ms इंतज़ार करता है. fail होने पर nginx error log लौटाता है<br />
→ user द्वारा दर्ज command चलाता है (जांचता है कि वह curl / http है)<br />
→ request का output लौटाता है <br />
- सभी requests को 1 shared server से process करता है <br />
<br />
- security approach: थोड़ी isolation, थोड़ी YOLO <br />
→ frontend CDN पर host किया गया है <br />
→ DB का उपयोग नहीं करता. सिर्फ browser local storage का उपयोग करता है<br />
→ सभी nginx को उनके अपने network namespace में रखता है. internet access को block करता है <br />
→ fly.io का free tier उपयोग करता है <br />
→ लोगों से अच्छा व्यवहार करने के लिए FAQ में लिखता है <br />
<br />
- performance<br />
→ बहुत छोटा instance (1 shared CPU, 256MB RAM)<br />
→ frontend CDN पर है, इसलिए backend सिर्फ वास्तविक उपयोग के समय चलता है<br />
→ एक request में लगभग 400ms लगते हैं. बुरा नहीं है <br />
→ Go version वाला httpbin original Python version से हल्का है <br />
→ frontend performance बहुत अच्छी नहीं है </p>
अभी कोई टिप्पणी नहीं है.