Ravindra Bagale · Cyber Securityसर्व coursesया course चे lessonsशोधाEnglish

Cyber Security · मराठी आवृत्ती

Web server काय करतो? Nginx आणि Apache

रवींद्र बागले यांच्या course वर आधारित · सहज मराठीत explanation

या page मध्ये

Web server हा HTTP/HTTPS requests घेणारा program आहे. साधारण port 80/443 वर request येते. Host आणि URL पाहून योग्य file देतो किंवा application कडून response आणतो. Nginx आणि Apache दोन्ही वापरले जातात; choice application आणि configuration वर ठरते.

Feature Nginx Apache (httpd / apache2)
Architecture Event-driven/asynchronous; मोजके workers अनेक connections हाताळतात MPM नुसार process/thread/event behavior (prefork, worker, event)
Static content Static content साठी कार्यक्षम; workload/config वर परिणाम अवलंबून कार्यक्षमता आणि memory वापर MPM/workload/config वर अवलंबून
Dynamic content (PHP) बाहेरच्या PHP-FPM द्वारे (FastCGI) mod_php किंवा PHP-FPM द्वारे
Configuration Central config files; server {} blocks Central config + गरजेनुसार directory ची .htaccess
.htaccess support नाही; rules central config मध्ये द्यावे लागतात हो; configured असल्यास WordPress/shared hosting मध्ये उपयोगी
Reverse proxy / load balancer Built-in proxy/load-balancing सुविधा mod_proxy, mod_proxy_balancer modules द्वारे
Modules Compiled किंवा dynamic modules अनेक dynamically loadable modules
Virtual hosts server { server_​name ... } <VirtualHost *:​80> ServerName ... </​VirtualHost>
नेहमीचा उपयोग Node/Python reverse proxy, static sites, जास्त traffic LAMP apps, WordPress, legacy apps, shared hosting

Nginx चं event-driven design कमी workers मधून अनेक connections हाताळण्यासाठी उपयोगी. Apache मध्ये prefork, worker, event अशी MPM models आहेत. त्यामुळे “Apache नेहमी एक process per connection” किंवा “Nginx नेहमीच fast” असे सरसकट निष्कर्ष काढू नका; workload, modules आणि configuration महत्त्वाचे असतात.

PHP साठी Nginx बाहेरचा PHP-FPM/FastCGI वापरतो. Apache मध्ये mod_php किंवा PHP-FPM वापरता येतो. Nginx मध्ये central config/server blocks; Apache मध्ये central config सोबत परवानगी दिल्यास per-directory .htaccess वापरता येतो. Nginx .htaccess वाचत नाही.

कुठे कोणता निवडाल?

Static sites आणि Node/Python च्या पुढे reverse proxy म्हणून Nginx सोयीचा. .htaccess वर अवलंबून असलेल्या PHP/WordPress setup साठी Apache सोपा पडू शकतो. दोन्ही reverse proxy/load balancing करू शकतात; Apache मध्ये mod_proxy/mod_proxy_balancer संबंधित modules असतात.

एका IP/address family वरचा तोच port दोन्ही services स्वतंत्रपणे bind करू शकत नाहीत. या lab मध्ये server बदलताना दुसरी service आधी थांबवा किंवा वेगळा listen endpoint ठरवा.

Security मध्ये महत्त्व

Version banner उदा. Server: nginx/1.24.0, directory listing, test pages आणि उघडे backups अनावश्यक माहिती देऊ शकतात. पुढच्या Nikto lab मध्ये असे checks पाहू. Version लपवणं updates आणि secure configuration चा पर्याय नाही.

Practice

Nginx आणि Apache मधले तीन फरक लिहा. प्रत्येकी एक असा use case द्या जिथे तुम्ही तो निवडाल.