वेब सर्वर भनेको इन्टरनेटमा वेबसाइटहरू प्रदान गर्नका लागि एक प्रणाली हो। वेब सर्वर सफ्टवेयरहरूमाApache, Nginx, LiteSpeedआदि छन्, तर Ubuntu मा सबैभन्दा व्यापक रूपमा प्रयोग गरिनेApacheहो।
Ubuntuहल्का, स्थिरता उच्च र खुला स्रोतभएकोले, व्यक्तिगतबाट कम्पनीसम्म व्यापक रूपमा अपनाइएको छ। विशेष गरीLAMP वातावरण (Linux, Apache, MySQL/MariaDB, PHP)निर्माण गर्न सजिलो छ, र धेरै वेबसाइटहरू वा एप्लिकेसनहरूको सञ्चालनका लागि उपयुक्त छ।
यो लेखको लक्षित पाठकहरू
यो लेखवेब सर्वर पहिलो पटक निर्माण गर्ने शुरुआतीहरूका लागिहो। Ubuntu प्रयोग गरेर वेब सर्वर स्थापना गर्ने, Apache स्थापना गर्ने, भर्चुअल होस्ट वा SSL प्रमाणपत्र सेटअप गर्दै, अनुकूलन वा सुरक्षा मजबुत बनाउने विधिलाई विस्तृत रूपमा व्याख्या गर्दछ।
यो लेखबाट सिक्न सकिने कुराहरू
Ubuntu मा वेब सर्वर निर्माण गर्ने विधि (Apache को स्थापना – आधारभूत सेटिङ)
भर्चुअल होस्टको सेटिङ र बहु साइट सञ्चालन
Let’s Encrypt प्रयोग गरेर निःशुल्क SSL को स्थापना
वेब सर्वरको सुरक्षा मजबुत र अनुकूलन
सामान्य समस्या निवारण र तिनको समाधानहरू
2. Ubuntu को स्थापना र प्रारम्भिक सेटिङ
आवश्यक प्रणाली आवश्यकताहरू
Ubuntu लाई वेब सर्वरको रूपमा सञ्चालन गर्नका लागि, निम्न जस्तान्यूनतम स्पेक्ससिफारिस गरिन्छ।
आइटम
न्यूनतम आवश्यकता
सिफारिस आवश्यकता
OS
Ubuntu 22.04 LTS
Ubuntu 22.04 LTS
CPU
1GHz भन्दा माथि
2GHz भन्दा माथि
मेमोरी
512MB
2GB भन्दा माथि
स्टोरेज
10GB भन्दा माथि
20GB भन्दा माथि
नेटवर्क
इन्टरनेट कनेक्सन
उच्च गति लाइन सिफारिस
Ubuntu को डाउनलोड र स्थापना
Ubuntu आधिकारिक साइट (https://ubuntu.com/download/server) बाट डाउनलोड गर्न सकिन्छ। ISO फाइल प्राप्त गर्नुहोस्,VirtualBox वा VMwareमा भर्चुअल वातावरण सिर्जना गर्नुहोस् वासमर्पित सर्वर वा VPSमा स्थापना गर्नुहोस्।
स्थापना प्रक्रिया:
स्थापना मिडियाको सिर्जना
USB मेमोरी (Rufus जस्ता उपकरण प्रयोग गरेर)
भर्चुअल मेसिनमा ISO फाइल माउन्ट गर्नुहोस्
स्थापना विजार्ड अनुसार सेटिङ
भाषालाई “जापानी” मा सेट गर्नुहोस्
नेटवर्क कनेक्सन जाँच गर्नुहोस्
प्रयोगकर्ता नाम र पासवर्ड सेट गर्नुहोस्
SSH सर्वरको स्थापना (पछि पनि सम्भव)
OS को सेटअप पूरा भएपछि, पुन: सुरु गर्नुहोस्
लगइन गर्नुहोस् र प्रारम्भिक सेटिङ सुरु गर्नुहोस्
आधारभूत प्रारम्भिक सेटिङ
स्थापना तुरुन्तै गर्नुपर्ने प्रारम्भिक सेटिङहरू प्रस्तुत गर्दछ।
प्याकेजको अपडेट
sudo apt update && sudo apt upgrade -y
→ प्रणालीको सुरक्षा पैच वा सफ्टवेयर अपडेट गर्दछ।
समय क्षेत्रको सेटिङ
sudo timedatectl set-timezone Asia/Tokyo
→ जापानी समय (JST) मा सेट गर्दछ।
फायरवालको सक्रियता
sudo ufw enable
→ अनधिकृत पहुँच रोक्नका लागि, फायरवाललाई सक्रिय गर्दछ।
SSH को सेटिङ (रिमोट व्यवस्थापनका लागि)
SSH सक्रिय छ कि जाँच गर्नुहोस् sudo systemctl status ssh
यदि निष्क्रिय छ भने सक्रिय गर्नुहोस् sudo systemctl enable --now ssh
यो प्रारम्भिक सेटिङ पूरा भएपछि, Ubuntu सर्वरलाई पूर्ण रूपमा वेब सर्वरको रूपमा प्रयोग गर्न तयार हुन्छ।
3. Apache को स्थापना र आधारभूत सेटिङ
Apache के हो?
Apache (औपचारिक नाम: Apache HTTP Server)एक ओपन सोर्स वेब सर्वर सफ्टवेयर हो, जसको स्थिरता, विस्तारिता र उच्च सुरक्षाको कारणलेदुनिया भरका सर्वरहरूको लगभग ३०% ले Apache प्रयोग गर्दछ।
मुख्य विशेषताहरू:
निःशुल्क रूपमा प्रयोग गर्न सकिन्छ (ओपन सोर्स)
मोड्युलर संरचना ले विस्तार सजिलो बनाउँछ
SSL/TLS समर्थन ले HTTPS रूपान्तरण सम्भव बनाउँछ
भर्चुअल होस्ट (Virtual Host) मार्फत धेरै साइटहरू सञ्चालन गर्न सकिन्छ
Apache को स्थापना
Ubuntu मा, Apache लाई प्याकेज व्यवस्थापन प्रणालीaptप्रयोग गरेर सजिलै स्थापना गर्न सकिन्छ।
Apache स्थापना गर्ने
निम्न कमान्डहरू चलाएर Apache स्थापना गर्नुहोस्।
sudo apt update
sudo apt install apache2 -y
स्थापनाको सफलता जाँच्ने
स्थापना पछि, निम्न कमान्डले Apache को संस्करण जाँच गर्न सकिन्छ।
apache2 -v
आउटपुट उदाहरण:
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-07-01T12:34:56
यदि यस्तो संस्करण जानकारी देखाइएको छ भने, सामान्य रूपमा स्थापना भएको छ।
Apache को सुरु गर्ने, रोक्ने र पुन: सुरु गर्ने
Apache लाईsystemctlकमान्ड प्रयोग गरेर व्यवस्थापन गरिन्छ।
Apache सुरु गर्ने
sudo systemctl start apache2
यसले Apache लाई सुरु गर्दछ र वेब अनुरोधहरू प्रक्रिया गर्न सक्ने अवस्थामा पुर्याउँछ।
Apache लाई स्वचालित सुरुवातमा सेट गर्ने
sudo systemctl enable apache2
Apache को अवस्था जाँच्ने
Apache सामान्य रूपमा सञ्चालन भइरहेको छ कि छैन जाँच्न, निम्न कमान्ड चलाउनुहोस्।
sudo systemctl status apache2
सामान्य रूपमा सञ्चालन भएमा, निम्न जस्तो सन्देश देखाइन्छ।
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since ...
Apache लाई पुन: सुरु गर्ने वा रोक्ने
सेटिङ परिवर्तन गर्दा Apache लाई पुन: सुरु गर्न निम्न कमान्ड प्रयोग गर्नुहोस्।
sudo systemctl restart apache2
Apache लाई अस्थायी रूपमा रोक्न चाहनुहुन्छ भने निम्न कमान्ड चलाउनुहोस्।
sudo systemctl stop apache2
Apache को सञ्चालन जाँच्ने
Apache ठीकसँग सञ्चालन भइरहेको छ कि छैन जाँच्न,सर्वरको IP ठेगाना पहुँच गर्नुहोस्।
Apache को डिफल्ट पृष्ठ (/var/www/html/index.html) देखिनुपर्छ।डिफल्ट प्रदर्शन पृष्ठको उदाहरण:
Apache2 Ubuntu Default Page
It works!
यदि यो सन्देश देखाइएको छ भने, Apache सामान्य रूपमा सञ्चालन भइरहेको छ।
फायरवालको सेटिङ
Ubuntu माUFW (Uncomplicated Firewall)प्रयोग गरेर फायरवाल सेट गरिन्छ।
Apache स्थापना गरेको अवस्थामा, बाहिरीबाट HTTP (पोर्ट ८०) र HTTPS (पोर्ट ४४३) पहुँच अवरुद्ध हुन सक्छ।
Apache का लागि फायरवाल नियम सेट गर्ने
sudo ufw allow 'Apache'
वा, HTTPS पनि अनुमति दिन चाहनुहुन्छ भने निम्न कमान्ड चलाउनुहोस्।
sudo ufw allow 'Apache Full'
फायरवालको अवस्था जाँच्ने
sudo ufw status
आउटपुट उदाहरण:
Status: active
To Action From
-- ------ ----
Apache ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
यदि यस्तो देखाइएको छ भने, Apache को सञ्चार अनुमति प्राप्त भएको अवस्था हो।
सारांश
यहाँसम्ममा,Ubuntu मा Apache स्थापना गरी, आधारभूत सेटिङ सम्पन्नभयो।
यो लेखमा व्याख्या गरिएका मुख्य सामग्री:
Apache को स्थापना विधि
Apache को सुरुवात र स्वचालित सुरुवात सेटिङ
Apache को सञ्चालन जाँच (ब्राउजरबाट पहुँच)
फायरवालको सेटिङ
Apache को आधारभूत सेटिङ फाइलको परिचय
4. भर्चुअल होस्टको सेटिङ (एकभन्दा बढी साइटहरूको व्यवस्थापन)
भर्चुअल होस्ट (Virtual Host) भनेको के हो?
भर्चुअल होस्ट भनेकोएउटा Apache सर्वरमा एकभन्दा बढी डोमेन (वा सबडोमेन) सञ्चालन गर्नका लागिको संयन्त्रहो।
उदाहरणका लागि, एउटा सर्वरमाexample.comरtest.comदुई फरक वेबसाइटहरू प्रदान गर्न सकिन्छ। भर्चुअल होस्टका प्रकारहरू निम्न दुई छन्।
कार्य परीक्षणका लागि, प्रत्येक वेबसाइटको होमपेजका लागिindex.htmlसिर्जना गर्नुहोस्।
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/public_html/index.html
4. भर्चुअल होस्टको सेटिङ फाइल सिर्जना गर्नुहोस्
भर्चुअल होस्टको सेटिङ फाइल/etc/apache2/sites-available/डाइरेक्टरी भित्र सिर्जना गर्नुहोस्।
example.com को भर्चुअल होस्ट सेटिङ
निम्न कमान्डले सेटिङ फाइल सिर्जना गर्नुहोस् र सम्पादन गर्नुहोस्।
भर्चुअल होस्ट सही रूपमा कार्य गरिरहेको छ भनेर जाँच्नका लागि, स्थानीय PC कोhostsफाइल सम्पादन गर्नुहोस्।
sudo nano /etc/hosts
निम्न लाइन थप्नुहोस्:
127.0.0.1 example.com
127.0.0.1 test.com
संग्रह गरेपछि, ब्राउजरमाhttp://example.com/मा पहुँच गर्नुहोस् र「Welcome to example.com」देखाइएको छ भनेर जाँच्नुहोस्। त्यस्तैhttp://test.com/मा पहुँच गर्नुहोस् र「Welcome to test.com」देखाइएमा सफल भएको हो।
7. समस्या निवारण
भर्चुअल होस्ट सही रूपमा कार्य नगरेमा, निम्न जाँच्नुहोस्।
1. Apache को त्रुटि लग जाँच्नुहोस्
sudo tail -f /var/log/apache2/error.log
2. सेटिङ फाइल सही रूपमा सक्रिय भएको छ भनेर जाँच्नुहोस्
ls /etc/apache2/sites-enabled/
उपयुक्त.confफाइलहरू सूचीबद्ध भएमा, भर्चुअल होस्ट सक्रिय छ।
3. Apache को पोर्ट सेटिङ जाँच्नुहोस्
भर्चुअल होस्टले पोर्ट ८० (HTTP) मा कार्य गरोस् भनेर,/etc/apache2/ports.confजाँच्नुहोस्।
sudo nano /etc/apache2/ports.conf
निम्न वर्णन छ भनेर जाँच्नुहोस्:
Listen 80
सारांश
यो खण्डमा,Ubuntu मा Apache को भर्चुअल होस्ट सेटिङ गर्ने विधिव्याख्या गरियो।
यो लेखबाट सिकेका कुराहरू:
भर्चुअल होस्टको अवधारणा र उपयोग
भर्चुअल होस्टका लागि डाइरेक्टरी सिर्जना
भर्चुअल होस्ट सेटिङ फाइल सिर्जना र सक्रिय
स्थानीय वातावरणमा कार्य परीक्षण विधि
समस्या निवारण
5. SSL/TLS को परिचय (HTTPSकरण)
SSL/TLS भनेको के हो?
SSL (Secure Sockets Layer) र TLS (Transport Layer Security) इन्टरनेटमा सुरक्षित सञ्चार सुनिश्चित गर्नका लागि एन्क्रिप्शन प्रविधिहरू हुन्।
SSL/TLS परिचयका फाइदाहरू
✅सञ्चारको एन्क्रिप्शन(डाटा चोरी वा परिवर्तन हुने जोखिम कम गर्दछ)
✅गुगलको SEO मूल्यांकन सुधार(HTTPS साइटहरू खोज परिणामहरूमा प्राथमिकता पाउँछन्)
✅ब्राउजरको चेतावनीबाट बचाव(HTTP साइटहरूमा “असुरक्षित सञ्चार” देखाइन्छ)
✅अनलाइन भुक्तानी र लगइन जानकारीको सुरक्षाअहिले,TLS (TLS 1.2 / 1.3) लाई सिफारिस गरिएकोछ, र SSL 3.0 भन्दा पुरानालाई गैर-सिफारिस गरिएको छ।
Let’s Encrypt बाट निःशुल्क SSL प्रमाणपत्र प्राप्त गर्नुहोस्
Let’s Encrypt एक प्रमाणपत्र प्राधिकरण (CA: Certificate Authority) हो जसले निःशुल्क रूपमा SSL प्रमाणपत्र जारी गर्दछ।certbotप्रयोग गरेर सजिलै प्रमाणपत्र प्राप्त गर्न सकिन्छ र Apache मा लागू गर्न सकिन्छ।
Let’s Encrypt क्लाइन्ट (Certbot) को स्थापना
पहिले,certbot(Let’s Encrypt को आधिकारिक क्लाइन्ट) स्थापना गर्नुहोस्।
डिफल्ट रूपमा,SSH ब्रुट फोर्स आक्रमणको लक्ष्यबन्न सजिलो हुन्छ, त्यसैले उपयुक्त सेटिङ गर्नुहोस्।
SSH को पोर्ट परिवर्तन गर्नुहोस्
sudo nano /etc/ssh/sshd_config
परिवर्तन गर्ने स्थान:
Port 2222 # २२ → २२२२ मा परिवर्तन गर्नुहोस् (कुनै पनि पोर्ट नम्बर)
PermitRootLogin no # रुटबाट लगइन निषेध गर्नुहोस्
PasswordAuthentication no # पासवर्ड प्रमाणीकरणलाई असक्षम गर्नुहोस् (SSH कुञ्जी प्रमाणीकरण मात्र अनुमति)
परिवर्तन पछि, SSH लाई पुन: सुरु गर्नुहोस्:
sudo systemctl restart ssh
Fail2Ban को स्थापना
Fail2Ban ले SSH मा अनधिकृत लगइन प्रयास गर्ने IP ठेगानाहरूलाई अस्थायी रूपमा ब्लक गर्ने उपकरण हो।
KeepAlive (स्थायी कनेक्सन) लाई सक्रिय गरेर, क्लाइन्टले त्यही कनेक्सनलाई पुन: प्रयोग गर्न सक्छ र अनुरोधहरूको संख्या घटाउन सकिन्छ। सेटिङ फाइल सम्पादन गर्नुहोस्:
sudo nano /etc/apache2/apache2.conf
निम्न सेटिङ जाँच गर्नुहोस्:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
सेटिङ पछि, Apache लाई पुन: सुरु गर्नुहोस्:
sudo systemctl restart apache2
क्यासको उपयोग
ब्राउजर क्यास र सर्भर क्यासको उपयोग गरेर,अनावश्यक अनुरोधहरू घटाई प्रतिक्रिया गति सुधार गर्न सकिन्छ।
यो खण्डमा,Ubuntu वेब सर्वर (Apache) मा सजिलै हुने त्रुटिहरूको कारण र समाधानव्याख्या गरियो।
यो लेखबाट सिकेका कुराहरू:
Apache सुरु नहुने बेलाको समाधान
SSL प्रमाणपत्र सम्बन्धी त्रुटि समाधान
४०३ / ४०४ / ५०० त्रुटिहरूको कारण र सुधार
प्रदर्शनको अनुकूलन
नेटवर्क जडान जाँच
9. सारांश
अहिलेसम्म सिकेका कुराहरू
प्रत्येक खण्डमा व्याख्या गरिएका सामग्रीहरूको समीक्षा गरौं।
खण्ड
सामग्री
1. सुरुवात
Ubuntu Web सर्वरको आधारभूत अवधारणा र यो लेखको उद्देश्य
2. Ubuntu को स्थापना र प्रारम्भिक सेटिङ
OS को स्थापना, अपडेट, फायरवाल सेटिङ
3. Apache को स्थापना र आधारभूत सेटिङ
Apache को परिचय, सुरुवात, सञ्चालन जाँच
4. भर्चुअल होस्टको सेटिङ
एकभन्दा बढी वेबसाइटहरू होस्ट गर्ने सेटिङ
5. SSL/TLS को परिचय
Let’s Encrypt प्रयोग गरेर HTTPS बनाउने
6. Web सर्वरको सुरक्षा मजबुत बनाउने
फायरवाल सेटिङ, SSH सुरक्षा, Apache को सुरक्षा
7. प्रदर्शन अनुकूलन
क्यास, डाटा संपीडन, Apache को अनुकूलन सेटिङ
8. समस्या निवारण
Apache को त्रुटि सम्बोधन, SSL समस्या सुधार, लोड व्यवस्था
अर्को चरणहरू
Ubuntu Web सर्वरको आधारभूत सेटिङ सम्पन्न भएपछि, यस्ताप्रयोगात्मक सेटिङ वा प्रविधिहरूसिकेर, थप व्यावहारिक सर्वर वातावरण निर्माण गर्न सकिन्छ। ✅WordPress वा PHP एप्लिकेसनको परिचय✅डाटाबेस सर्वर (MySQL / MariaDB) को सेटअप✅रिभर्स प्रोक्सी (Nginx + Apache) को निर्माण✅अटोस्केल वातावरणको निर्माण(AWS, GCP, Azure को प्रयोग)
✅लग व्यवस्थापन र मोनिटरिङ(fail2ban वा logwatch को प्रयोग)
सामान्य प्रश्नहरू (FAQ)
Q1: Ubuntu मा Nginx र Apache मध्ये कुन छान्ने?
A1:स्थिर सामग्री वितरण मुख्य भए Nginx, गतिशील सामग्री (PHP आदि) धेरै भए Apacheसिफारिस।
Nginx लाई रिभर्स प्रोक्सीको रूपमा पनि प्रयोग गर्न सकिन्छ, Apache सँग संयोजन पनि सम्भव।
Q2: SSL प्रमाणपत्रको अपडेट स्वचालित गर्न सकिन्छ?
A2:Certbot स्थापना गरेमा, स्वचालित अपडेट सम्भव छ।कमान्डsudo certbot renew --dry-runले परीक्षण गर्नुहोस्, तालिकामाcronसेट गर्नु राम्रो हुन्छ।
Q3: Web सर्वरको सुरक्षालाई थप मजबुत बनाउन कसरी?
A3:Fail2Ban ले ब्रुट फोर्स आक्रमण रोक्नुहोस्, Apache को संस्करण जानकारी लुकाउनुहोस्, अनावश्यक मोड्युलहरू निष्क्रिय गर्नुहोस्आधारभूत उपायहरू हुन्।
Q4: Apache को प्रदर्शन सुधार्ने विधि के छ?
A4:MPM को उपयुक्त छनोट (event / worker), क्यास सेटिङ (mod_cache), डाटा संपीडन (mod_deflate) गर्नुहोस्।
Q5: वेबसाइटले “403 Forbidden” त्रुटि दिने कारण के हो?
A5:डाइरेक्टरीको स्वामित्व www-data मा सेट छ कि जाँच गर्नुहोस्, chmod -R 755 ले उपयुक्त अनुमति सेट गर्नुहोस्।
सारांश
Ubuntu Web सर्वरको निर्माण आधारभूत सेटिङदेखि उन्नत अनुकूलनसम्म धेरै चरणहरू चाहिन्छ, तर एकपटक बुझ्न सकिएमा अत्यन्त शक्तिशाली वातावरण निर्माण गर्न सकिन्छ। 🚀यो लेखलाई सन्दर्भ गर्दै, थप सुरक्षित र छिटो Web सर्वर निर्माण गर्नुहोस्, सञ्चालन सीपहरू सुधार्नुहोस्!🚀