एक सुरक्षित Nginx रिवर्स प्रॉक्सी बनाने की पूरी गाइड
उच्च-ट्रैफ़िक वाली वेबसाइटों या जटिल एप्लिकेशन को प्रबंधित करने वाले व्यवसायों और आईटी पेशेवरों के लिए एक सुरक्षित, विश्वसनीय और स्केलेबल रिवर्स प्रॉक्सी बनाना बेहद ज़रूरी है। Nginx, एक ओपन-सोर्स वेब सर्वर और रिवर्स प्रॉक्सी, आपकी बैकएंड सेवाओं के ट्रैफ़िक को रूट करने, अनुकूलित करने और सुरक्षित करने का एक शक्तिशाली समाधान है। इस गाइड में, हम Ubuntu 24.04 पर Nginx का उपयोग करके एक मज़बूत रिवर्स प्रॉक्सी सेटअप करने की प्रक्रिया को समझाएँगे, जिसमें TLS एन्क्रिप्शन, रेट लिमिटिंग और क्लाउडफ्लेयर के साथ एकीकरण जैसे महत्वपूर्ण चरण शामिल होंगे।
यदि आप उद्यम-स्तरीय वेबसाइट, ई-कॉमर्स प्लेटफॉर्म या मीडिया सर्वर का प्रबंधन कर रहे हैं, तो यह मार्गदर्शिका आपको प्रदर्शन बढ़ाने, अपटाइम सुनिश्चित करने और अपने बुनियादी ढांचे को कमजोरियों से बचाने के लिए सशक्त बनाएगी।
Nginx रिवर्स प्रॉक्सी क्या है?
Nginx रिवर्स प्रॉक्सी क्लाइंट और बैकएंड सेवाओं के बीच एक मध्यस्थ सर्वर के रूप में कार्य करता है। यह क्लाइंट अनुरोधों को उपयुक्त बैकएंड सर्वर पर अग्रेषित करता है, लोड वितरण को अनुकूलित करता है, सुरक्षा बढ़ाता है, और कैशिंग, SSL समाप्ति और ट्रैफ़िक फ़िल्टरिंग जैसी सुविधाओं को सक्षम करता है। यह सेटअप फ़ायरवॉल के पीछे मीडिया सर्वर, मल्टी-साइट एप्लिकेशन और सेवाओं को होस्ट करने के लिए विशेष रूप से उपयोगी है।
एसबीबी-आईटीबी-59e1987
आपको रिवर्स प्रॉक्सी की आवश्यकता क्यों है?
रिवर्स प्रॉक्सी कई प्रमुख लाभ प्रदान करता है:
- सुरक्षा बढ़ाना: बैकएंड सर्वर के आईपी को छुपाता है और टीएलएस/एसएसएल के माध्यम से एन्क्रिप्शन सक्षम करता है।
- भार का संतुलन: ट्रैफ़िक को एकाधिक बैकएंड सर्वरों पर समान रूप से वितरित करता है।
- अनुकूलन: विलंबता कम करता है और संसाधन दक्षता में सुधार करता है।
- अनुमापकता: उच्च-ट्रैफ़िक परिदृश्यों का प्रबंधन करना आसान बनाता है।
- प्रबंधन में आसानी: एकीकृत डोमेन के पीछे एकाधिक बैकएंड सेवाओं के कॉन्फ़िगरेशन को सरल बनाता है।
इस ट्यूटोरियल में हम दिखाएंगे कि कैसे:
- Nginx को रिवर्स प्रॉक्सी के रूप में सेट करें।
- Let's Encrypt TLS प्रमाणपत्रों के साथ अपने सेटअप को सुरक्षित करें।
- दर सीमित करने और अनुरोध अग्रेषण जैसे उन्नत अनुकूलन कॉन्फ़िगर करें.
- ISP पोर्ट प्रतिबंधों को बायपास करने के लिए क्लाउडफ्लेयर को एकीकृत करें।
चरण 1: Ubuntu 24.04 पर Nginx और Certbot स्थापित करना
अपना सिस्टम अपडेट करें
किसी भी सॉफ्टवेयर को स्थापित करने से पहले सुनिश्चित करें कि आपका सिस्टम अद्यतन है:
sudo apt अपडेट && sudo apt अपग्रेड Nginx और Certbot स्थापित करें
Nginx प्लगइन के साथ Nginx और Certbot को स्थापित करने के लिए निम्नलिखित कमांड का उपयोग करें:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y स्थापना सत्यापित करें
पुष्टि करें कि Nginx चल रहा है:
sudo systemctl स्थिति nginx पहुँच का परीक्षण करने के लिए, अपने सर्वर का IP पता निर्धारित करें:
आईपी ए ब्राउज़र में IP पता देखें। सफल होने पर, आपको डिफ़ॉल्ट Nginx स्वागत पृष्ठ दिखाई देगा।
चरण 2: फ़ायरवॉल नियमों को कॉन्फ़िगर करना
सरल फ़ायरवॉल (UFW) सक्षम करें
UFW आपको फ़ायरवॉल नियमों को आसानी से प्रबंधित करने की अनुमति देता है:
sudo ufw 'Nginx Full' को अनुमति दें sudo ufw OpenSSH को अनुमति दें sudo ufw सक्षम करें यह सुनिश्चित करने के लिए कि सही पोर्ट खुले हैं, अपने फ़ायरवॉल की स्थिति जांचें:
sudo ufw स्थिति चरण 3: Nginx प्रॉक्सी कॉन्फ़िगरेशन सेट अप करना
कस्टम कॉन्फ़िगरेशन फ़ाइलें बनाएँ
बेहतर लचीलेपन और सुरक्षा के लिए, विशिष्ट कॉन्फ़िगरेशन संग्रहीत करने के लिए स्निपेट फ़ाइलों का उपयोग करें। निम्नलिखित फ़ाइलें बनाएँ:
- सुरक्षा हेडर:
सुरक्षा बढ़ाने के लिए सुरक्षा हेडर परिभाषित करें:सुडो नैनो /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - प्रॉक्सी सेटिंग्स:
लंबी स्ट्रीम को अनुकूलित करें और धीमी प्रतिक्रियाओं को रोकें:सुडो नैनो /etc/nginx/snippets/proxy.confproxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; - दर सीमाएँ:
अत्यधिक अनुरोधों को कम करें:सुडो नैनो /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr ज़ोन=mylimit:10m दर=10r/s;
मुख्य कॉन्फ़िगरेशन में स्निपेट शामिल करें
मुख्य Nginx कॉन्फ़िगरेशन संपादित करें:
सुडो नैनो /etc/nginx/nginx.conf के अंतर्गत निम्नलिखित जोड़ें एचटीटीपी अवरोध पैदा करना:
/etc/nginx/snippets/*.conf शामिल करें; परिवर्तन लागू करने के लिए Nginx को पुनः आरंभ करें:
sudo systemctl पुनः लोड nginx चरण 4: बैकएंड सेवा के लिए रिवर्स प्रॉक्सी सेट अप करना
एक वर्चुअल होस्ट बनाएँ
अपनी बैकएंड सेवा के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ:
sudo nano /etc/nginx/sites-available/jellyfin जेलीफिन मीडिया सर्वर के लिए उदाहरण कॉन्फ़िगरेशन:
सर्वर { listen 80; server_name jelly.yourdomain.com; स्थान / { proxy_pass http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } प्रतीकात्मक लिंक बनाकर साइट को सक्षम करें:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Nginx का परीक्षण करें और पुनः लोड करें:
sudo nginx -t sudo systemctl पुनः लोड nginx चरण 5: Let's Encrypt TLS के साथ अपने डोमेन को सुरक्षित करना
अपने डोमेन को सुरक्षित करने के लिए, निःशुल्क प्रमाणपत्र जारी करने हेतु Let's Encrypt का उपयोग करें:
sudo certbot --nginx -d जेली.yourdomain.com Certbot आपकी Nginx साइट फ़ाइल में SSL को स्वचालित रूप से कॉन्फ़िगर करता है। यह सुनिश्चित करने के लिए कि प्रमाणपत्र स्वचालित रूप से नवीनीकृत हों, सत्यापित करें कि systemd टाइमर सक्रिय है:
sudo systemctl list-timers | grep certbot चरण 6: अतिरिक्त सुरक्षा और ISP पोर्ट बाईपास के लिए क्लाउडफ्लेयर को एकीकृत करना
क्लाउडफ्लेयर्ड इंस्टॉल करें
क्लाउडफ्लेयर, पोर्ट 80 और 443 पर ISP प्रतिबंधों को दरकिनार करते हुए, क्लाउडफ्लेयर के माध्यम से ट्रैफ़िक को रूट करने के लिए एक सुरक्षित सुरंग बनाता है:
- डाउनलोड करें
.देबपैकेज क्लाउडफ्लेयर के GitHub पेज से लिया गया है। - पैकेज स्थापित करें:
sudo dpkg -i cloudflared-version.deb
सुरंग कॉन्फ़िगर करें
अपने क्लाउडफ्लेयर खाते से प्रमाणीकरण करें:
क्लाउडफ्लेयर्ड टनल लॉगिन एक नई सुरंग बनाएं:
क्लाउडफ्लेयर्ड सुरंग मेरी सुरंग बनाएं क्लाउडफ्लेयर कॉन्फ़िगरेशन फ़ाइल संपादित करें:
सुडो नैनो /etc/cloudflared/config.yml उदाहरण विन्यास:
सुरंग: मेरी-सुरंग क्रेडेंशियल-फ़ाइल: /home/user/.cloudflared/my-tunnel.json प्रवेश: - होस्टनाम: jelly.yourdomain.com सेवा: http://localhost:8096 - सेवा: http_status:404 सुरंग सेवा प्रारंभ करें और सक्षम करें:
sudo systemctl cloudflared सक्षम करें sudo systemctl cloudflared प्रारंभ करें चाबी छीनना
- Nginx रिवर्स प्रॉक्सी: ट्रैफ़िक को सुरक्षित रूप से रूट करने और बैकएंड सेवाओं को अनुकूलित करने के लिए आवश्यक।
- TLS एन्क्रिप्शन: अपने डोमेन को निःशुल्क SSL प्रमाणपत्रों से सुरक्षित करने के लिए Let's Encrypt का उपयोग करें।
- फ़ायरवॉल नियम: HTTP (80), HTTPS (443), और SSH (22) के लिए आवश्यक पोर्ट खोलें।
- सुरक्षा अनुकूलन: हमलों को रोकने के लिए हेडर और दर सीमित करना लागू करें।
- क्लाउडफ्लेयर एकीकरणसुरक्षित, ISP-अनुकूल होस्टिंग के लिए क्लाउडफ्लेयर्ड टनल का उपयोग करें।
- स्वचालन: सिस्टमड टाइमर यह सुनिश्चित करते हैं कि SSL प्रमाणपत्र स्वचालित रूप से नवीनीकृत हो जाएं।
निष्कर्ष
एक सुरक्षित Nginx रिवर्स प्रॉक्सी सेटअप करने के लिए बारीकियों पर ध्यान देने और सावधानीपूर्वक कॉन्फ़िगरेशन की आवश्यकता होती है, लेकिन इसके परिणाम प्रयास के लायक हैं। चाहे आप जेलीफ़िन जैसे मीडिया सर्वर होस्ट कर रहे हों या एंटरप्राइज़ एप्लिकेशन प्रबंधित कर रहे हों, यह मार्गदर्शिका आपको एक अत्यधिक सुरक्षित और कुशल वातावरण बनाने के लिए आवश्यक उपकरण और ज्ञान प्रदान करती है। TLS, क्लाउडफ्लेयर टनल और उन्नत ऑप्टिमाइज़ेशन जैसी सुविधाओं के साथ, आपका इंफ्रास्ट्रक्चर आधुनिक आवश्यकताओं के लिए तैयार है।
स्रोत: "अपने ऐप्स को सार्वजनिक करना बंद करें! एक सुरक्षित Nginx रिवर्स प्रॉक्सी बनाएँ!" - KeepItTechie, YouTube, 19 अगस्त, 2025 - https://www.youtube.com/watch?v=MzbhS2S7H_g
उपयोग: संदर्भ हेतु सन्निहित। संक्षिप्त उद्धरण टिप्पणी/समीक्षा हेतु प्रयुक्त।
संबंधित ब्लॉग पोस्ट
- इष्टतम वेब सर्वर प्रदर्शन के लिए Nginx कॉन्फ़िगरेशन में महारत हासिल करना
- एनजीआईएनएक्स कॉन्फ़िगरेशन में महारत हासिल करना: सर्वरियन कैसे बी2बी वेब होस्टिंग की सफलता को अनलॉक करता है
- NGINX कॉन्फ़िगरेशन रिवाइंड: सर्वरियन ने प्रॉक्सी कैश ट्यूनिंग की खोई हुई कला को पुनर्जीवित किया
- भूला हुआ NGINX कॉन्फ़िगरेशन फ्रंटियर: सर्वरियन का फास्टसीजीआई माइक्रोकैशिंग में गोता