शुरुआती लोगों के लिए अपाचे ट्यूटोरियल

⚡ स्मार्ट सारांश

अपाचे एचटीटीपी सर्वर सार्वजनिक वेब के आधे से अधिक हिस्से को शक्ति प्रदान करता है, और यह संसाधन इसकी वास्तुकला, स्थापना पथ, वर्चुअल होस्टिंग मॉडल, सुरक्षा सुदृढ़ीकरण, लॉगिंग और उत्पादन परिनियोजन को विस्तार से बताता है ताकि प्रशासक आत्मविश्वास से इसे लिनक्स पर संचालित कर सकें। Windowsया, macOS वातावरण।

  • 🌐 मॉड्यूलर डिजाइन: अपाचे सुविधाओं को डायनेमिक शेयर्ड ऑब्जेक्ट के रूप में लोड करता है, जिससे प्रशासक केवल उन्हीं सुविधाओं को सक्षम कर सकते हैं जिनकी प्रत्येक वर्कलोड को आवश्यकता होती है।
  • लचीले इंस्टॉलेशन पथ: पैकेज मैनेजर, आरपीएम बिल्ड और सोर्स टारबॉल टीमों को रनटाइम को ऑपरेटिंग सिस्टम और मॉड्यूल की जरूरतों से मिलाने की सुविधा देते हैं।
  • ⚙️ वर्चुअल होस्टिंग: एक अपाचे इंस्टेंस नाम-आधारित या आईपी-आधारित वर्चुअलहोस्ट निर्देशों के माध्यम से कई साइटों को सेवा प्रदान कर सकता है।
  • 🔒 कठोरता की मूल बातें: ServerTokens, ServerSignature, mod_security, mod_evasive और अनुरोध सीमाएं सामान्य वेब हमलों के जोखिम को कम करती हैं।
  • 📊 लॉग अवलोकनशीलता: सामान्य और संयुक्त लॉग प्रारूप, साथ ही कस्टम निर्देश, सर्वर द्वारा संभाले जाने वाले प्रत्येक अनुरोध में विस्तृत दृश्यता प्रदान करते हैं।

अपाचे ट्यूटोरियल

अपाचे क्या है?

अपाचे एक असाधारण एप्लिकेशन सॉफ़्टवेयर है। यह दुनिया में सबसे व्यापक रूप से उपयोग किया जाने वाला वेब सर्वर एप्लिकेशन है, जिसका वाणिज्यिक वेब सर्वर बाजार में 50% से अधिक हिस्सा है। अपाचे यूनिक्स जैसे ऑपरेटिंग सिस्टम पर सबसे व्यापक रूप से उपयोग किया जाने वाला वेब सर्वर एप्लिकेशन है, लेकिन इसका उपयोग लगभग सभी प्लेटफॉर्म पर किया जा सकता है। WindowsOS X, OS/2, आदि। अपाचे शब्द, मूल अमेरिकी जनजाति अपाचे के नाम से लिया गया है, जो युद्ध कौशल और रणनीति निर्माण के लिए प्रसिद्ध है।

यह एक मॉड्यूलर, प्रोसेस-आधारित वेब सर्वर एप्लिकेशन है जो प्रत्येक एक साथ कनेक्शन के साथ एक नया थ्रेड बनाता है। यह कई सुविधाओं का समर्थन करता है; इनमें से कई को अलग-अलग मॉड्यूल के रूप में संकलित किया जाता है और इसकी मुख्य कार्यक्षमता को बढ़ाते हैं, सर्वर-साइड प्रोग्रामिंग भाषा समर्थन से लेकर प्रमाणीकरण तंत्र तक सब कुछ प्रदान करते हैं। वर्चुअल होस्टिंग ऐसी ही एक सुविधा है जो एक ही अपाचे वेब सर्वर को एक ही हार्डवेयर से कई अलग-अलग वेबसाइटों को चलाने की अनुमति देती है।

अपाचे

अपाचे कैसे स्थापित करें?

अपाचे को डिप्लॉय करने से पहले, उपलब्ध विभिन्न इंस्टॉलेशन तरीकों को समझना ज़रूरी है। पैकेज या एप्लिकेशन को इंस्टॉल करने के कई तरीके हैं, जो नीचे दिए गए हैं।

  1. इस खुले मंच की एक विशेषता यह है कि सोर्स वेब एप्लिकेशन की खासियत यह है कि कोई भी व्यक्ति अपने वातावरण के लिए इंस्टॉलर तैयार कर सकता है। इससे डेबियन, रेड हैट, फ्रीबीएसडी और सुसे जैसे विभिन्न विक्रेताओं को अन्य स्थापित अनुप्रयोगों और बेस ऑपरेटिंग सिस्टम को ध्यान में रखते हुए अपाचे की फ़ाइल लोकेशन और कॉन्फ़िगरेशन को अनुकूलित करने की सुविधा मिली है।
  2. किसी विक्रेता द्वारा प्रदान किए गए इंस्टॉलर से इसे इंस्टॉल करने के अलावा, स्रोत कोड से इसे बिल्ड और इंस्टॉल करने का विकल्प भी हमेशा मौजूद रहता है। स्रोत फ़ाइल से अपाचे को इंस्टॉल करना प्लेटफ़ॉर्म-स्वतंत्र है और लगभग सभी ऑपरेटिंग सिस्टम पर काम करता है।

अपाचे वेब सर्वर एक मॉड्यूलर एप्लिकेशन है जहां प्रशासक आवश्यक कार्यक्षमता का चयन कर सकता है और आवश्यकतानुसार विभिन्न मॉड्यूल स्थापित कर सकता है।

सभी मॉड्यूल को इस प्रकार संकलित किया जा सकता है गतिशील साझा ऑब्जेक्ट (डीएसओ एक ऑब्जेक्ट फ़ाइल है जिसे कई एप्लिकेशन एक साथ चलते समय साझा कर सकते हैं) जो मुख्य अपाचे बाइनरी से अलग मौजूद होती है। डीएसओ दृष्टिकोण की अत्यधिक अनुशंसा की जाती है; यह सर्वर कॉन्फ़िगरेशन से मॉड्यूल को जोड़ने, हटाने या अपडेट करने के कार्य को बहुत सरल बना देता है।

अपाचे इंस्टॉल करें: लिनक्स प्लेटफ़ॉर्म

रेड हैट या आरपीएम आधारित सिस्टम पर

यदि आप आरपीएम (रेड हैट पैकेज मैनेजर, लिनक्स सिस्टम पर एप्लिकेशन इंस्टॉल करने के लिए एक यूटिलिटी) पर आधारित लिनक्स डिस्ट्रीब्यूशन का उपयोग कर रहे हैं, जैसे कि रेड हैट, फेडोरा, सेंटओएस या स्यूज, तो आप इस एप्लिकेशन को या तो विक्रेता-विशिष्ट पैकेज मैनेजर के माध्यम से या उपलब्ध सोर्स टारबॉल से सीधे आरपीएम फाइल बनाकर इंस्टॉल कर सकते हैं।

आप CentOS, Red Hat और Fedora जैसे सभी Red Hat आधारित वितरणों पर उपलब्ध डिफ़ॉल्ट पैकेज मैनेजर के माध्यम से Apache को इंस्टॉल कर सकते हैं।

[root@amsterdam ~]# yum install httpd

अपाचे सोर्स टारबॉल को निम्नलिखित कमांड का उपयोग करके आरपीएम फाइल में परिवर्तित किया जा सकता है।

[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2

सोर्स से .rpm फ़ाइल बनाने के लिए आपके सर्वर पर -devel पैकेज इंस्टॉल होना अनिवार्य है।

एक बार जब आप स्रोत फ़ाइल को आरपीएम इंस्टॉलर में परिवर्तित कर लेते हैं, तो आप अपाचे को स्थापित करने के लिए निम्न कमांड का उपयोग कर सकते हैं।

[root@amsterdam ~]# rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

इंस्टॉलेशन के बाद सर्वर अपने आप शुरू नहीं होता है। सेवा शुरू करने के लिए, आपको Fedora, CentOS या Red Hat पर निम्नलिखित में से किसी भी कमांड का उपयोग करना होगा।

[root@amsterdam ~]# /usr/sbin/apachectl start

[root@amsterdam ~]# service httpd start

[root@amsterdam ~]# /etc/init.d/httpd start

स्रोत से अपाचे स्थापित करें

यदि पैकेज-मैनेजर बिल्ड आपके वातावरण से मेल नहीं खाता है, तो सोर्स इंस्टॉलेशन पूर्ण नियंत्रण प्रदान करता है। सोर्स से अपाचे इंस्टॉल करने के लिए आपके सर्वर पर -devel पैकेज इंस्टॉल होना आवश्यक है। आप अपाचे का नवीनतम उपलब्ध संस्करण ढूंढ सकते हैं और उसे डाउनलोड कर सकते हैं। आधिकारिक अपाचे डाउनलोड पेजस्रोत फ़ाइल डाउनलोड करने के बाद, उसे /usr/local/src फ़ोल्डर में ले जाएं।

[root@amserversterdam ~] cd /usr/local/src

[root@amserversterdam ~] gzip -d httpd-2.2.26.tar.gz

[root@amserversterdam ~] tar xvf httpd-2.2.26.tar

[root@amserversterdam ~] httpd-2.2.26

Apache के लिए उपलब्ध सभी कॉन्फ़िगरेशन विकल्पों को देखने के लिए, आप ./configure –help विकल्प का उपयोग कर सकते हैं। सबसे आम कॉन्फ़िगरेशन विकल्प –prefix={install directory name} है।

[root@amserversterdam ~]./configure --help

[root@amserversterdam ~]./configure --prefix=/usr/local/apache --enable-so

[root@amserversterdam ~] make

[root@amserversterdam ~] make install

उपरोक्त उदाहरण /usr/local/apache डायरेक्टरी में DSO क्षमता के साथ Apache के संकलन को दर्शाता है। –enable-so विकल्प आवश्यक मॉड्यूल को पुनः संकलन की आवश्यकता के बजाय DSO तंत्र के माध्यम से रनटाइम पर Apache में लोड करने की अनुमति देता है।

स्थापना पूरी होने के बाद, आप अपने पसंदीदा ब्राउज़र से वेब सर्वर का डिफ़ॉल्ट पेज ब्राउज़ कर सकते हैं। यदि आपके सर्वर पर फ़ायरवॉल चालू है, तो आपको अपने ऑपरेटिंग सिस्टम फ़ायरवॉल पर पोर्ट 80 के लिए एक अपवाद बनाना होगा। पोर्ट 80 खोलने के लिए आप निम्न कमांड का उपयोग कर सकते हैं।

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

सेवा iptables सहेजें

आप डिफ़ॉल्ट देख सकते हैं अपाचे2 स्वागत स्क्रीन आपके सर्वर आईपी पते पर जाकर।

स्रोत से अपाचे स्थापित करें

वर्चुअल होस्ट क्या है?

एक बार अपाचे चालू हो जाने के बाद, अगला तार्किक कदम एक ही मशीन पर कई साइटों को होस्ट करना सीखना है। एक अपाचे वेब सर्वर एक ही मशीन पर कई वेबसाइटों को होस्ट कर सकता है। वही सर्वर। आपको प्रत्येक वेबसाइट के लिए एक अलग सर्वर मशीन और अपाचे सॉफ़्टवेयर की आवश्यकता नहीं है। यह एक सर्वर की अवधारणा का उपयोग करके प्राप्त किया जा सकता है। वर्चुअल होस्ट or वीहोस्ट.

आप अपने वेब सर्वर पर जिस भी डोमेन को होस्ट करना चाहते हैं, उसके लिए अपाचे कॉन्फ़िगरेशन फ़ाइल में एक अलग प्रविष्टि होगी।

वर्चुअल होस्ट

अपाचे वर्चुअलहोस्ट के प्रकार

  1. नाम-आधारित वर्चुअल होस्ट
  2. पता-आधारित या आईपी-आधारित वर्चुअल होस्ट

नाम-आधारित वर्चुअल होस्ट

नाम-आधारित वर्चुअल होस्टिंग का उपयोग एक ही आईपी पते पर कई वर्चुअल साइटों को होस्ट करने के लिए किया जाता है।

नाम-आधारित वर्चुअल होस्ट

नाम-आधारित वर्चुअल होस्टिंग को कॉन्फ़िगर करने के लिए, आपको वह IP पता सेट करना होगा जिस पर आपको सभी वांछित वेबसाइटों के लिए Apache अनुरोध प्राप्त होंगे। आप इसे Apache कॉन्फ़िगरेशन में NameVirtualHost निर्देश का उपयोग करके कर सकते हैं। httpd.conf या apache2.conf फ़ाइल।

अपाचे वर्चुअल होस्ट उदाहरण:

NameVirtualHost *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

आप अपने वातावरण की आवश्यकतानुसार जितने चाहें उतने वर्चुअल होस्ट जोड़ सकते हैं। आप अपनी वेब कॉन्फ़िगरेशन फ़ाइलों को निम्न प्रकार से देख सकते हैं:

[root@amsterdam ~]#httpd -t
Syntax OK

यदि कॉन्फ़िगरेशन फ़ाइल में गलत सिंटैक्स है, तो यह एक त्रुटि उत्पन्न करेगा:

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

आईपी-आधारित वर्चुअल होस्ट

आईपी-आधारित वर्चुअल होस्टिंग स्थापित करने के लिए, आपके सर्वर पर एक से अधिक आईपी पते कॉन्फ़िगर किए जाने चाहिए। इसलिए, अपाचे द्वारा समर्थित वर्चुअल होस्टिंग होस्ट की संख्या आपके सर्वर पर कॉन्फ़िगर किए गए आईपी पतों की संख्या पर निर्भर करेगी। यदि आपके सर्वर पर 10 आईपी पते हैं, तो आप 10 आईपी-आधारित वर्चुअल होस्ट बना सकते हैं।

आईपी-आधारित वर्चुअल होस्ट

ऊपर दिए गए आरेख में, दो वेबसाइटों, example1.com और example2.com को अलग-अलग आईपी पते दिए गए हैं और वे आईपी-आधारित वर्चुअल होस्टिंग का उपयोग कर रही हैं।

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

अपाचे बनाम एनजिनक्स: त्वरित तुलना

किसी नए सिस्टम को स्थापित करने की योजना बनाते समय अक्सर Apache और Nginx की तुलना की जाती है। नीचे दी गई तालिका में सबसे आम निर्णय बिंदुओं का सारांश दिया गया है।

फ़ैक्टर Apache HTTP Server nginx
प्रसंस्करण मॉडल प्रत्येक कनेक्शन के लिए एक प्रक्रिया या थ्रेड (प्रीफोर्क, वर्कर, इवेंट एमपीएम) घटना-संचालित, अतुल्यकालिक
विन्यास प्रति-निर्देशिका .htaccess ओवरराइड समर्थित हैं केंद्रीकृत कॉन्फ़िगरेशन, .htaccess की आवश्यकता नहीं
गतिशील सामग्री mod_php और अन्य मॉड्यूल रनटाइम को प्रक्रिया के भीतर ही एम्बेड करते हैं। PHP-FPM या बाहरी ऐप सर्वरों के लिए प्रॉक्सी
स्थिर फ़ाइल थ्रूपुट मजबूत, लेकिन प्रति कनेक्शन अधिक मेमोरी की आवश्यकता है अत्यधिक समवर्तीता की स्थिति में उत्कृष्ट प्रदर्शन।
मॉड्यूल पारिस्थितिकी तंत्र बहुत बड़ा; रनटाइम पर डीएसओ के रूप में लोड किया जाता है संकलित या गतिशील मॉड्यूल, छोटा पारिस्थितिकी तंत्र
विशिष्ट उपयोग मामला शेयर्ड होस्टिंग, .htaccess वर्कफ़्लो, मिक्स्ड डायनेमिक ऐप्स Reverse प्रॉक्सी, स्टैटिक डिलीवरी, उच्च-समवर्ती एंडपॉइंट

PHP फ़ाइल चलाने के लिए Apache को क्या चाहिए?

Apache पर PHP फ़ाइलें चलाने के लिए आवश्यक है mod_php आपके सर्वर पर यह सुविधा उपलब्ध है। यह अपाचे को .php फ़ाइलों को समझने की अनुमति देता है। इसमें PHP हैंडलर होते हैं जो अपाचे में PHP कोड को समझते हैं और HTML को आपके वेब सर्वर पर भेजते हैं।

यदि आपके सर्वर पर mod_php सक्षम है, तो आपको /etc/httpd/conf.d/ निर्देशिका में php.conf नाम की एक फ़ाइल मिलेगी। आप इसे निम्न कमांड से भी देख सकते हैं:

httpd -M | grep "php5_module"

आउटपुट कुछ इस प्रकार होगा:

PHP फ़ाइल चलाने के लिए Apache को क्या चाहिए

अपाचे में PHP हैंडलर्स

  • mod_php
  • सीजीआई
  • FastCGI
  • suPHP

mod_php यह सबसे पुराना PHP हैंडलर है; यह PHP को Apache का हिस्सा बनाता है और किसी भी बाहरी PHP प्रक्रिया को कॉल नहीं करता है। यह मॉड्यूल हर Linux वितरण रिपॉजिटरी में डिफ़ॉल्ट रूप से स्थापित होता है, इसलिए इसे सक्षम या अक्षम करना बहुत आसान है।

आप उपयोग कर रहे हैं FastCGI अपने PHP हैंडलर के रूप में, आप अपने सर्वर पर विभिन्न खातों द्वारा उपयोग किए जाने हेतु PHP के एकाधिक संस्करण सेट कर सकते हैं।

FastCGI, यानी mod_fastcgi, का विस्तार है mod_fcgid, जहां mod_fcgid यह CGI (mod_cgi) का एक उच्च-प्रदर्शन विकल्प है। यह समवर्ती वेब अनुरोधों को संभालने के लिए पर्याप्त संख्या में CGI इंस्टेंस शुरू करता है। यह suexec का उपयोग करके PHP के अपने-अपने इंस्टेंस वाले विभिन्न उपयोगकर्ताओं को सहायता प्रदान करता है और वेब सुरक्षा में सुधार करता है।

Apache पर Ruby फ़ाइलें चलाने के लिए mod_ruby को सक्षम करना आवश्यक है। Apache FastCGI के माध्यम से भी Ruby फ़ाइलों को हैंडल कर सकता है। mod_fcgid यानी FastCGI की मदद से Ruby के कई संस्करणों का उपयोग करना संभव है।

आप अपाचे पैसेंजर को भी इंस्टॉल कर सकते हैं और रूबी पेजों को सर्व करने के लिए अपाचे को कॉन्फ़िगर कर सकते हैं।

(फ्यूज़न पैसेंजर, जिसे “ के नाम से भी जाना जाता है)यात्रीयह एक निःशुल्क वेब सर्वर मॉड्यूल है जिसे अपाचे और एनजिनक्स के साथ एकीकृत करने के लिए डिज़ाइन किया गया है।

अपने सर्वर पर mod_ruby को इंस्टॉल करने के चरण:

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

अपाचे के साथ रूबी कैसे चलाएं

हमें Apache कॉन्फ़िगरेशन में mod_ruby मॉड्यूल जोड़ना होगा, यानी /etc/httpd/conf.d/ruby.conf में, और निम्नलिखित पंक्ति जोड़नी होगी।

लोडमॉड्यूल रूबी_मॉड्यूल मॉड्यूल/mod_ruby.so

यदि आप इन मॉड्यूल को सक्षम या अक्षम करना चाहते हैं, तो आपको अपाचे कॉन्फ़िगरेशन फ़ाइल को संपादित करना होगा और इन मॉड्यूल को कमेंट या अनकमेंट करना होगा, बशर्ते वेब सर्वर पहले से ही उनके साथ कंपाइल किया गया हो।

अपाचे के साथ रूबी चलाएँ

अपाचे वेब सर्वर को सुरक्षित कैसे करें?

एक बार जब अपाचे सही सामग्री उपलब्ध करा रहा हो, तो अगली प्राथमिकता उसे सुरक्षित करना है। अपने वेब सर्वर को सुरक्षित करना बहुत महत्वपूर्ण है; इसका अर्थ है दूसरों को केवल इच्छित जानकारी देखने देना, अपने डेटा की सुरक्षा करना और पहुंच को प्रतिबंधित करना।

ये कुछ सामान्य तरीके हैं जो आपके अपाचे वेब सर्वर की सुरक्षा को बढ़ाते हैं।

1) अपाचे संस्करण और ऑपरेटिंग सिस्टम की जानकारी छिपाना

नीचे दिए गए स्क्रीनशॉट में दिखाए अनुसार, अपाचे त्रुटियों में अपना संस्करण और ऑपरेटिंग सिस्टम का नाम प्रदर्शित करता है।

अपाचे संस्करण और OS जानकारी छिपाना

हमलावर इस जानकारी का उपयोग सर्वर या ऑपरेटिंग सिस्टम के विशेष संस्करण में सार्वजनिक रूप से उपलब्ध कमजोरियों का फायदा उठाकर हमला करने के लिए कर सकता है।

अपाचे को यह जानकारी प्रदर्शित करने से रोकने के लिए, हमें अपाचे कॉन्फ़िगरेशन फ़ाइल में उपलब्ध "सर्वर सिग्नेचर" विकल्प को संशोधित करना होगा। डिफ़ॉल्ट रूप से, यह "चालू" होता है; हमें इसे "बंद" पर सेट करना होगा।

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

हमने "ServerTokens Prod" भी सेट किया है जो वेब सर्वर को केवल Apache लौटाने और OS के प्रमुख और लघु संस्करणों को छिपाने के लिए कहता है।

कॉन्फ़िगरेशन फ़ाइल में बदलाव करने के बाद, परिवर्तन को प्रभावी बनाने के लिए आपको अपने अपाचे वेब सर्वर को रीस्टार्ट या रीलोड करना होगा।

service httpd restart

अपाचे संस्करण और OS जानकारी छिपाना

2) निर्देशिका सूची अक्षम करें

यदि आपकी डॉक्यूमेंट रूट डायरेक्टरी में इंडेक्स फ़ाइल नहीं है, तो डिफ़ॉल्ट रूप से आपका अपाचे वेब सर्वर डॉक्यूमेंट रूट डायरेक्टरी की सभी सामग्री दिखाएगा।

निर्देशिका सूची अक्षम करें

इस सुविधा को अपाचे कॉन्फ़िगरेशन फ़ाइल में उपलब्ध "विकल्प" निर्देश के माध्यम से किसी विशिष्ट निर्देशिका के लिए बंद किया जा सकता है।

<Directory /var/www/html>

    Options -Indexes

</Directory>

निर्देशिका सूची अक्षम करें

3) अनावश्यक मॉड्यूल को अक्षम करना

उपयोग में न आने वाले सभी अनावश्यक मॉड्यूल को निष्क्रिय करना एक अच्छी बात है। आप अपने अपाचे कॉन्फ़िगरेशन फ़ाइल में सक्रिय मॉड्यूल की सूची देख सकते हैं।

[root@amsterdam ~]#httpd -M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

सूचीबद्ध मॉड्यूल में से कई को अक्षम किया जा सकता है, जैसे mod_imap, mod_include, mod_info, mod_userdir और mod_autoindex, क्योंकि इनका उपयोग उत्पादन वेब सर्वरों द्वारा शायद ही कभी किया जाता है।

vi /etc/httpd/conf/httpd.conf

#LoadModule auth_digest_module modules/mod_auth_digest.so

मॉड्यूल को कमेंट आउट करने के बाद, फ़ाइल को सेव करें।

निम्नलिखित कमांड का उपयोग करके अपाचे सेवाओं को पुनरारंभ करें।

/etc/init.d/httpd restart

4) वेब रूट निर्देशिका के बाहर फ़ाइलों तक पहुंच को प्रतिबंधित करना

यदि आप यह सुनिश्चित करना चाहते हैं कि वेब रूट डायरेक्टरी के बाहर की फाइलें एक्सेस न हो सकें, तो आपको यह सुनिश्चित करना होगा कि आपकी वेब सर्वर कॉन्फ़िगरेशन फ़ाइल में "अनुमति दें" और "अस्वीकार करें" विकल्पों के साथ डायरेक्टरी प्रतिबंधित हो।

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

एक बार जब आप वेब रूट डायरेक्टरी के बाहर पहुंच को प्रतिबंधित कर देते हैं, तो आप अपने वेब सर्वर पर किसी अन्य फ़ोल्डर में स्थित किसी भी फ़ाइल तक पहुंच नहीं पाएंगे; आपको 404 रिटर्न कोड मिलेगा।

वेब रूट निर्देशिका के बाहर फ़ाइलों तक पहुंच को प्रतिबंधित करना

5) DoS हमलों का मुकाबला करने के लिए mod_evasive का उपयोग करना

यदि आप अपने वेब सर्वर को DoS (Denial of Service) हमलों से बचाना चाहते हैं, तो आपको mod_evasive मॉड्यूल को सक्रिय करना होगा। यह एक तृतीय-पक्ष मॉड्यूल है जो DoS हमलों का पता लगाता है और उन्हें अनियंत्रित रूप से चलने पर होने वाले नुकसान को कम करता है। इसे नीचे दिए गए लिंक से डाउनलोड किया जा सकता है।

उपरोक्त फ़ाइल डाउनलोड करें

6) अपाचे की सुरक्षा बढ़ाने के लिए mod_security का उपयोग करना

यह मॉड्यूल अपाचे के लिए फ़ायरवॉल के रूप में काम करता है और आपको ट्रैफ़िक को रियल टाइम में मॉनिटर करने की सुविधा देता है। यह वेब सर्वर को ब्रूट-फ़ोर्स हमलों से भी बचाता है। mod_security मॉड्यूल को आपके डिस्ट्रीब्यूशन के डिफ़ॉल्ट पैकेज मैनेजर से इंस्टॉल किया जा सकता है।

अपाचे सुरक्षा को बढ़ाने के लिए mod_security का उपयोग करना

7) अनुरोध का आकार सीमित करना

अपाचे HTTP अनुरोध के कुल आकार पर कोई प्रतिबंध नहीं लगाता है, जिससे DoS हमले का खतरा हो सकता है। आप डायरेक्टरी टैग के अंदर अपाचे निर्देश "LimitRequestBody" का उपयोग करके अनुरोध के आकार को सीमित कर सकते हैं। आवश्यकतानुसार इसका मान 0 से 2 GB (2147483647 बाइट्स) तक सेट किया जा सकता है।

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

अपाचे लॉग प्रारूप

सर्वर को सुरक्षित बनाने के बाद, लॉग समीक्षा समस्याओं का पता लगाने का प्राथमिक साधन बन जाती है। अपाचे लॉग विस्तृत जानकारी प्रदान करते हैं जो सर्वर के साथ होने वाली सामान्य समस्याओं का पता लगाने में सहायक होती है।

एक्सेस लॉग बनाने के लिए, mod_log_config मॉड्यूल को सक्षम किया जाना चाहिए।

अपाचे कॉन्फ़िगरेशन फ़ाइल में तीन निर्देश उपलब्ध हैं

  • TransferLog: लॉग फ़ाइल बनाना.
  • लॉगफॉर्मेट: एक कस्टम फॉर्मेट निर्दिष्ट करना।
  • CustomLog: लॉग फ़ाइल बनाना और उसे फ़ॉर्मेट करना।

TransferLog निर्देश अपाचे कॉन्फ़िगरेशन फ़ाइल में उपलब्ध है, और यह निर्धारित मापदंडों के अनुसार वर्चुअल होस्ट लॉग फ़ाइलों को रोटेट करता है।

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog /usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

अपाचे लॉग प्रारूप के दो प्रकार

  • सामान्य लॉग प्रारूप
  • संयुक्त लॉग प्रारूप

आप अपाचे कॉन्फ़िगरेशन फ़ाइल, यानी apache2.conf (डेबियन/) को संपादित करके उन्हें सक्षम कर सकते हैं।Ubuntu) या httpd.conf (rpm-आधारित सिस्टम)।

सामान्य लॉग प्रारूप

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

अपाचे द्वारा उत्पन्न सामान्य लॉग

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

संयुक्त लॉग प्रारूप

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

यहाँ,

  • %h रिमोट होस्ट है।
  • %l उपयोगकर्ता की पहचान है जो identd द्वारा निर्धारित की जाती है।
  • %u HTTP प्रमाणीकरण द्वारा निर्धारित उपयोगकर्ता नाम है।
  • %t वह समय है जब सर्वर ने अनुरोध का प्रसंस्करण समाप्त कर दिया।
  • %r क्लाइंट से अनुरोध पंक्ति है। (“GET / HTTP/1.0”)
  • %>s सर्वर से क्लाइंट को भेजा गया स्टेटस कोड है (500, 404, आदि)।
  • %b क्लाइंट को भेजे गए रिस्पॉन्स का आकार (बाइट्स में) है।
  • रेफ़रर वह पेज है जिसने इस पेज से लिंक किया है। URL.
  • उपयोगकर्ता-एजेंट ब्राउज़र पहचान स्ट्रिंग है।

अपाचे द्वारा उत्पन्न संयुक्त लॉग:

199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

कस्टम लॉग आपके सर्वर पर प्रत्येक वर्चुअल होस्ट के लिए एक अलग लॉग फ़ाइल बनाता है। इसे कॉन्फ़िगरेशन फ़ाइल के वर्चुअल होस्ट अनुभाग में निर्दिष्ट करना आवश्यक है।

आप नीचे वर्चुअल होस्ट कॉन्फ़िगरेशन देख सकते हैं; जेनरेट किया गया लॉग उस वर्चुअल होस्ट के लिए कस्टम होगा और उसका फॉर्मेट संयुक्त होगा।

अपाचे द्वारा उत्पन्न संयुक्त लॉग

अपना पहला प्रोडक्शन वेब सर्वर कॉन्फ़िगर करें

कॉन्फ़िगरेशन, सुरक्षा और लॉगिंग का काम पूरा हो जाने के बाद, अंतिम चरण इन सभी को एक साथ मिलाकर उत्पादन के लिए तैयार वातावरण बनाना है।

1. एक चालू प्रोडक्शन वेब सर्वर चलाने के लिए, आपको एक समर्पित सर्वर की आवश्यकता होती है। नोड (भौतिक, आभासी या क्लाउड इंस्टेंस) जो लिनक्स, यूनिक्स चला रहा हो, Windows, macOS, आदि

2. वेब सर्वर में निम्नलिखित होना चाहिए: प्रत्यक्ष नेटवर्क कनेक्शन और एक स्थैतिक IP पता इस पर कॉन्फ़िगर किया गया.

3. इसमें ये सभी चीजें होनी चाहिए मॉड्यूल वेब पेज चलाने के लिए आवश्यक है। यदि कोई वेब सर्वर PHP पेज प्रोसेस करता है, तो उसे PHP मॉड्यूल को सक्षम करने की आवश्यकता होती है।

उत्पादन वेब सर्वर कॉन्फ़िगर करें

  1. इसे एक अच्छे की भी जरूरत है एंटीवायरस वेब सर्वर को मैलवेयर या वायरस हमलों से सुरक्षित रखने के लिए एप्लिकेशन को कॉन्फ़िगर और चालू किया जाना चाहिए। आपको एक तंत्र की भी आवश्यकता है। अद्यतन अधिकतम लाभ प्राप्त करने के लिए, कॉन्फ़िगर किए गए एंटीवायरस या एंटी-मैलवेयर एप्लिकेशन को बिना किसी मैन्युअल हस्तक्षेप के नियमित रूप से चलाएं।
  2. यदि आपके वेब सर्वर पर सैकड़ों डोमेन होस्ट किए जाने हैं, तो आपको यह प्रक्रिया लागू करनी होगी। प्रत्येक डोमेन के लिए फाइल सिस्टम कोटा पर सीमाएं, प्रत्येक डोमेन द्वारा बनाए जा सकने वाले डेटाबेस की संख्या, प्रति डोमेन ईमेल खातों की संख्या आदि।
  3. यदि आपका वेब सर्वर इसके लिए स्थापित किया गया है शेयर्ड होस्टिंग सेवाओं में, आपके वेब सर्वर पर उपयोगकर्ताओं को प्रतिबंधित करने की आवश्यकता होती है।शेयर्ड होस्टिंग उपयोगकर्ता के पास न्यूनतम विशेषाधिकार होने चाहिए ताकि वे महत्वपूर्ण फाइलों को नुकसान न पहुंचाएं या पूरे सर्वर को बाधित न करें। अपाचे ऐसी कोई सुविधा प्रदान नहीं करता है और इसके लिए विभिन्न तृतीय-पक्ष अनुप्रयोगों और ऑपरेटिंग सिस्टम के अनुकूलन की आवश्यकता होती है।
  4. यदि आप कोई जोड़ रहे हैं नया डोमेन आपके वेब सर्वर पर, जोड़े गए डोमेन के लिए सभी सुविधाओं को सक्षम करने के लिए सैकड़ों कॉन्फ़िगरेशन प्रविष्टियों को संपादित करने की आवश्यकता होती है।
  5. यदि होस्ट किए गए डोमेन में से किसी एक को आवश्यकता है विभिन्न PHP सेटिंग्स अन्य डोमेन की तुलना में, कोर अपाचे में इसे लागू करना बहुत जटिल है और इसके लिए आपके वेब सर्वर के व्यापक अनुकूलन की आवश्यकता होती है।
  6. एक उत्पादन वेब सर्वर की जरूरत है फ़ायरवॉल आपके सर्वर पर अत्यधिक भार उत्पन्न करने वाले अवांछित ट्रैफ़िक को अवरुद्ध करने के लिए। आईपीटेबल कमांड लाइन के साथ नियम बनाना जटिल है। अवांछित ट्रैफ़िक को ब्लॉक करने के लिए प्रभावी फ़ायरवॉल नियम लिखने के लिए कोर लिनक्स या यूनिक्स वातावरण की विशेषज्ञता आवश्यक है। IPTABLE नेटफ़िल्टर मॉड्यूल पर आधारित है; यह एक OS-स्तरीय फ़ायरवॉल है जो प्रशासक को सर्वर पर आने-जाने वाले ट्रैफ़िक के लिए नियम बनाने की अनुमति देता है।
  7. एक प्रोडक्शन वेब सर्वर को कई अलग-अलग अनुप्रयोगों की आवश्यकता होती है जैसे ईमेल, FTP फाइल अपलोड के लिए, और क्षेत्र नाम प्रणाली पार्क किए गए डोमेन के लिए। कोर लिनक्स या यूनिक्स सिस्टम पर इन सभी एप्लिकेशन को प्रबंधित करने के लिए संबंधित तकनीकों में विशेषज्ञता की आवश्यकता होती है।

इसलिए, यह कहा जा सकता है कि कई डोमेन के लिए वेब सर्वर का प्रबंधन करना एक बहुत ही जटिल कार्य है और इसके लिए सैकड़ों कॉन्फ़िगरेशन फ़ाइलों को संपादित करना और वांछित परिणाम प्राप्त करने के लिए प्रत्येक एप्लिकेशन को अनुकूलित करना आवश्यक है। किसी भी गलत कॉन्फ़िगरेशन का निवारण करना नौसिखियों के लिए बहुत मुश्किल होगा।

Cpanel या समान सॉफ्टवेयर का उपयोग करके समाधान

cPanel आपके वेब सर्वर को प्रबंधित करने का एक ग्राफिकल तरीका प्रदान करता है।इसका उद्देश्य आसान उपयोग और कॉन्फ़िगरेशन वाली व्यापक होस्टिंग सेवाएं प्रदान करना है। cPanel ने होस्टिंग और वेब सर्वर प्रबंधन में तकनीकी बाधाओं को कम कर दिया है। यह जटिल कार्यों को सरल बनाता है; यह कई उपयोगी और उपयोग में आसान वेब इंटरफेस प्रदान करता है जो वेब सर्वर चलाने के लिए आवश्यक सामान्य सिस्टम एडमिनिस्ट्रेशन कार्यों को पूरा करते हैं।

Cpanel या समान सॉफ्टवेयर का उपयोग करके समाधान

cPanel सॉफ्टवेयर का अपना संस्करण संकलित करता है।

यदि आपको सामान्य लिनक्स प्लेटफॉर्म पर अपने वेब सर्वर (अपाचे) को पुनः कंपाइल करना है, तो आपको आवश्यक मॉड्यूल को मैन्युअल रूप से चुनना या खोजना होगा। cPanel EasyApache सुविधा प्रदान करता है, जो स्क्रिप्ट-आधारित वेब सर्वर कंपाइलेशन विधि है।

Cpanel या समान सॉफ्टवेयर का उपयोग करके समाधान

यह आपको न केवल वेब सेवाएं प्रदान करता है बल्कि MailDNS, FTP और कई अन्य सेवाएं जो आपके वेब एप्लिकेशन के लिए आवश्यक हैं।

ऐसे कार्य जिनके लिए कोर लिनक्स या यूनिक्स आधारित होस्टिंग में विशेषज्ञता की आवश्यकता होती है, जैसे कि एसएसएल स्थापित करना, विभिन्न पीएचपी मॉड्यूल के साथ अपाचे को पुनः संकलित करना, वेब सुरक्षा को अपडेट करना, प्रभावी आईपीटीएबल नियमों को कॉन्फ़िगर करना, एफटीपी उपयोगकर्ता जोड़ना, प्रत्येक डोमेन के लिए मेल खाते बनाना, एंटीवायरस के साथ अपने दस्तावेज़ रूट को स्कैन करना और डेटाबेस बनाना, सीपैनल के साथ आसानी से पूरे किए जा सकते हैं।

यह कई स्क्रिप्ट प्रदान करता है जो सामान्य प्रशासनिक कार्यों को ठीक करने, स्थापित करने और उनमें आने वाली समस्याओं का निवारण करने में सहायक होती हैं।

यह बैकअप और रिस्टोर की सुविधा प्रदान करता है, जिससे फ़ाइलों को मैन्युअल रूप से बैकअप स्टोरेज में कॉपी करने की आवश्यकता समाप्त हो जाती है। यदि आप अपने डोमेन का बैकअप ले रहे हैं, तो cPanel एक tar फ़ाइल बनाएगा जिसमें डॉक्यूमेंट रूट फ़ोल्डर, ईमेल खाते और मेल, FTP खाते, डेटाबेस, DNS रिकॉर्ड और अन्य एप्लिकेशन शामिल होंगे।

यह मजबूत दस्तावेज़ीकरण भी प्रदान करता है और इसमें उपयोगकर्ताओं का एक बहुत बड़ा समुदाय है जहाँ आप अपनी समस्याओं पर चर्चा कर सकते हैं और उनके समाधान प्राप्त कर सकते हैं।

अतः हम कह सकते हैं कि cPanel यह आवश्यक सुविधाओं के साथ आपके वेब सर्वर को प्रबंधित करने के लिए एक सशक्त एप्लिकेशन है। यह आपके डोमेन को प्रबंधित करने के लिए एक उपयोग में आसान इंटरफ़ेस और कोर वेब सर्वर को प्रबंधित करने की जटिलता से बचने का एक तंत्र प्रदान करता है।

cPanel के कई प्रतिस्पर्धी उत्पाद हैं, जैसे कि Plesk, ISPConfig, Ajenti, Kloxo, Open Panel और ZPanel।

अक्सर पूछे जाने वाले प्रश्न

शेयर्ड होस्टिंग, .htaccess ओवरराइड और mod_php के माध्यम से एम्बेडेड PHP के लिए Apache चुनें। Nginx उच्च-समवर्ती स्थिर डिलीवरी या रिवर्स प्रॉक्सी के लिए उपयुक्त है।

403 निषिद्ध अनुमतियों या निर्देशिका प्रतिबंधों का संकेत देता है, 404 एक अनुपलब्ध संसाधन है, 500 एक सर्वर त्रुटि है, और 503 का अर्थ है एक ओवरलोडेड या अनुपलब्ध बैकएंड।

मॉड_रीराइट के लिए URL नियम, HTTPS के लिए mod_ssl, प्रतिक्रिया ट्यूनिंग के लिए mod_headers, संपीड़न के लिए mod_deflate, और ऐप सर्वरों के रिवर्स प्रॉक्सी के लिए mod_proxy।

जी हां। एआई सहायक httpd.conf स्निपेट्स की समीक्षा कर सकते हैं, mod_rewrite नियमों की व्याख्या कर सकते हैं, वर्चुअलहोस्ट फिक्सेस का सुझाव दे सकते हैं और संभावित मूल कारणों को उजागर करने के लिए error_log प्रविष्टियों का विश्लेषण कर सकते हैं।

टीमें एआई का उपयोग करके ट्रैफिक में अचानक होने वाली वृद्धि का पूर्वानुमान लगाती हैं, एमपीएम वर्कर की संख्या को समायोजित करती हैं, असामान्य लॉग पैटर्न को चिह्नित करती हैं और देखे गए अनुरोधों के आधार पर कैश या संपीड़न संबंधी सुधारों की सिफारिश करती हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: