OpenResty आर्किटेक्चर
समझें कि ngx_lua, Nginx के अनुरोध चरणों में LuaJIT को कैसे एम्बेड करता है।
OpenResty आर्किटेक्चर, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
OpenResty क्या है
OpenResty एक वेब प्लेटफ़ॉर्म है जो LuaJIT को Nginx में समाहित करता है। यह Nginx को एक पूर्ण-सुविधायुक्त वेब एप्लिकेशन सर्वर में बदल देता है, जहाँ लुआ कोड अनुरोधों को संभालता है।
ngx_lua मॉड्यूल
ngx_lua मॉड्यूल LuaJIT को Nginx में एकीकृत करता है। यह अनुरोध/प्रतिक्रिया डेटा, टाइमर, साझा स्मृति और कॉसॉकेट तक पहुँचने के लिए ngx.* एपीआई उपलब्ध कराता है।
Nginx अनुरोध चरण
OpenResty Nginx के अनुरोध-प्रसंस्करण चरणों को लुआ हुक के रूप में उपलब्ध कराता है: init_by_lua, access_by_lua, content_by_lua, header_filter_by_lua, log_by_lua।
nginx.conf की मूल बातें
उपयुक्त चरण निर्देश का उपयोग करके nginx.conf में लुआ हैंडलर कॉन्फ़िगर कीजिए।
# nginx.conf snippet
server {
listen 80;
location /hello {
content_by_lua_block {
ngx.header["Content-Type"] = "text/plain"
ngx.say("Hello from Lua!")
}
}
}प्रति-अनुरोध कॉरूटीन मॉडल
हर आने वाले अनुरोध को अपनी लुआ कॉरूटीन मिलती है। जब कोई कॉरूटीन यील्ड करती है (जैसे डेटाबेस की प्रतीक्षा करते समय), तो Nginx अन्य अनुरोधों को संभालता है। इससे ब्लॉक किए बिना उच्च समवर्तीता संभव होती है।
ngx एपीआई
मुख्य ngx फ़ंक्शन: ngx.say(), ngx.print(), ngx.header, ngx.var, ngx.req.*, ngx.status, ngx.exit()।
साझा मेमोरी स्थिति
वर्कर प्रक्रियाएँ ngx.shared.DICT के माध्यम से डेटा साझा करती हैं — यह एक साझा शब्दकोश है, जिसे nginx.conf में निश्चित मेमोरी आकार के साथ घोषित किया जाता है।
# nginx.conf
lua_shared_dict my_cache 10m;
-- In Lua:
ngx.shared.my_cache:set("key", "value", 60)कॉसॉकेट
OpenResty के कॉसॉकेट अवरोध-रहित TCP/UDP और HTTP सुविधा प्रदान करते हैं। वे Nginx के इवेंट लूप के साथ एकीकृत होते हैं, इसलिए Lua वर्कर को रोके बिना असमकालिक इनपुट/आउटपुट कर सकता है।
टाइमर एपीआई
ngx.timer.at(delay, fn) किसी विलंब के बाद Lua फ़ंक्शन चलाने का समय निर्धारित करता है। ngx.timer.every(interval, fn) उसे नियमित अंतराल पर चलाता है।
प्रदर्शन प्रोफ़ाइल
OpenResty प्रत्येक वर्कर के लिए एक साथ चलने वाले दसियों हज़ार कनेक्शन संभाल सकता है। LuaJIT की गति और Nginx के प्रमाणित इनपुट/आउटपुट बहुसंकेतन के साथ मिलकर, यह इनपुट/आउटपुट-आधारित कार्यभार के लिए Go और Node.js को टक्कर देता है।
सामान्य उपयोग के मामले
- एपीआई गेटवे और दर सीमित करना।
- प्रमाणीकरण और प्राधिकरण मिडलवेयर।
- गतिशील अनुरोध रूटिंग।
- Redis और Memcached कैशिंग परतें।
OpenResty प्रश्न
OpenResty उच्च समवर्तीता कैसे प्राप्त करता है?
पुनरावलोकन: OpenResty आर्किटेक्चर
OpenResty, Nginx में LuaJIT को एम्बेड करता है। प्रत्येक अनुरोध एक कॉरूटीन के रूप में चलता है। ngx.* एपीआई अनुरोध/प्रतिक्रिया डेटा, साझा मेमोरी, टाइमर और अवरोध-रहित कॉसॉकेट तक पहुँच प्रदान करता है।
एआई शिक्षक के साथ Lua सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 40
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “OpenResty आर्किटेक्चर” पाठ निःशुल्क है?
हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “OpenResty आर्किटेक्चर” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“OpenResty आर्किटेक्चर” में मैं क्या सीखूँगा?
समझें कि ngx_lua, Nginx के अनुरोध चरणों में LuaJIT को कैसे एम्बेड करता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“OpenResty आर्किटेक्चर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- OpenResty आर्किटेक्चर
- Lua में HTTP अनुरोध संभालना
- Cosocket और नॉन-ब्लॉकिंग TCP
- साझा मेमोरी डिक्शनरी