- 1 1. Panimula
- 2 2. Pag-install at Initial na Pag-set up ng Ubuntu
- 3 3. Ang Pag-install at Pangunahing Kagustuhan ng Apache
- 4 4. Pagsasadya ng Virtual Host (Pamamahala ng Maramihang Site)
- 5 5. Pagpapatupad ng SSL/TLS (Pagiging HTTPS)
- 6 6. Pagpapatibay ng Seguridad ng Web Server
- 7 7. Pag-optimize ng Pagganap
- 8 8. Pagresolba ng mga Problema
- 9 9. Buod
1. Panimula
Ano ang Ubuntu Web Server?
Ang web server ay isang sistema na naghahatid ng mga website sa internet. Sa mga web server software, kinabibilangan ng Apache, Nginx, LiteSpeed at iba pa, ngunit ang pinaka-layuning ginagamit sa Ubuntu ay ang Apache.
Ubuntu ay magaan, matatag, at open source kaya mula sa mga indibidwal hanggang sa mga kumpanya, malawak na ito ay ginagamit. Lalo na madali itong bumuo ng LAMP environment (Linux, Apache, MySQL/MariaDB, PHP), na angkop para sa maraming website at aplikasyon.
Sino ang Mga Target na Mambabasa ng Artikul na Ito
Ang artikulong ito ay para sa mga baguhan na nagsisimulang bumuo ng web server. Gamit ang Ubuntu upang itayo ang web server, ipakilala ang Apache, i-set up ang virtual host at SSL certificate habang tinatalakay nang detalyado ang mga paraan ng pag-optimize at pagpalakas ng seguridad.
Ang Maaari Mong Matutunan sa Artikul na Ito
- Paano bumuo ng web server sa Ubuntu (Pagpapakilala at basic na setting ng Apache)
- Pag-set up ng virtual host at pag-ooperate ng maraming site
- Pagpapakilala ng libreng SSL gamit ang Let’s Encrypt
- Pagpalakas ng seguridad at pag-optimize ng web server
- Mga karaniwang troubleshooting at mga solusyon nito
2. Pag-install at Initial na Pag-set up ng Ubuntu
Mga Kinakailangang System Requirements
Upang gamitin ang Ubuntu bilang web server, inirerekomenda ang mga sumusunod na minimum na spesipikasyon.
Item | Minimum na Kinakailangan | Inirerekomendang Kinakailangan |
---|---|---|
OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
CPU | 1GHz o higit pa | 2GHz o higit pa |
Memory | 512MB | 2GB o higit pa |
Storage | 10GB o higit pa | 20GB o higit pa |
Network | Koneksyon sa Internet | Inirerekomenda ang mabilis na linya |
Ang Pag-download at Pag-install ng Ubuntu
Ang Ubuntu ay maaaring i-download mula sa opisyal na site (https://ubuntu.com/download/server). Kunin ang ISO file, at gumawa ng virtual environment gamit ang VirtualBox o VMware, o i-install sa dedikadong server o VPS.
Mga Hakbang sa Pag-install:
- Paglikha ng Installation Media
- USB memory (gamit ang tool tulad ng Rufus)
- Mount ang ISO file sa virtual machine
- Sunod ang Installation Wizard sa pag-set up
- I-set ang wika sa “Japanese”
- Subukan ang koneksyon sa network
- I-set ang username at password
- I-install ang SSH server (maaari ring pagkatapos)
- Matapos ang set up ng OS, i-restart
- Mag-login at simulan ang initial na pag-set up
Basic na Initial na Pag-set up
Ang mga initial na pag-set up na dapat gawin kaagad pagkatapos ng pag-install ay ipinapakilala rito.
- Pag-update ng mga Package
sudo apt update && sudo apt upgrade -y
→ Nag-u-update ng security patches ng system at mga software.
- Pag-set up ng Time Zone
sudo timedatectl set-timezone Asia/Tokyo
→ I-set sa oras ng Japan (JST).
- Pag-activate ng Firewall
sudo ufw enable
→ Upang pigilan ang hindi awtorisadong access, i-activate ang firewall.
- Pag-set up ng SSH (para sa remote management)
- Subukan kung active ang SSH
sudo systemctl status ssh
- Kung hindi active, i-activate
sudo systemctl enable --now ssh
Kapag natapos na ang initial na pag-set up na ito, handa na ang Ubuntu server para sa seryosong paggamit bilang web server.
3. Ang Pag-install at Pangunahing Kagustuhan ng Apache
Ano ang Apache?
Apache (formal na pangalan: Apache HTTP Server) ay isang open-source na web server software, at dahil sa mataas na katatagan, kakayahang palawakin, at seguridad, nag-ooperate ng mga server sa buong mundo ang humigit-kumulang 30% gamit ang Apache.
Pangunahing Mga Tampok:
- Maaaring gamitin nang libre (open source)
- Modular na istraktura na madaling palawakin
- Suporta sa SSL/TLS na nagbibigay-daan sa pagiging posible ng HTTPS
- Sa pamamagitan ng Virtual Host, maaaring operahin ang maraming site
Ang Pag-install ng Apache
Sa Ubuntu, ang Apache ay madaling mai-install gamit ang package management system apt
.
I-install ang Apache
I-execute ang sumusunod na command upang i-install ang Apache.
sudo apt update
sudo apt install apache2 -y
Suriin kung matagumpay ang pag-install
Pagkatapos ng pag-install, maaari mong suriin ang bersyon ng Apache gamit ang sumusunod na command.
apache2 -v
Halimbawa ng output:
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-07-01T12:34:56
Kung ipapakita ang impormasyong ito ng bersyon, normal na naka-install na ito.
Ang Pagsisimula, Pagpapatigil, at Pag-restart ng Apache
Ang Apache ay pinapamahalaan gamit ang systemctl
command.
I-start ang Apache
sudo systemctl start apache2
Sa ganitong paraan, magsisimula ang Apache at handa nang pagproseso ng mga web request.
I-set ang Apache sa awtomatikong pagsisimula
sudo systemctl enable apache2
Suriin ang kalagayan ng Apache
Upang suriin kung normal na gumagana ang Apache, i-execute ang sumusunod na command.
sudo systemctl status apache2
Kung normal na gumagana, ipapakita ang mensaheng katulad nito.
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since ...
I-restart o I-stop ang Apache
Kung nagbago ang setting, gamitin ang sumusunod na command upang i-restart ang Apache.
sudo systemctl restart apache2
Kung nais mong pansamantalang itigil ang Apache, i-execute ang sumusunod na command.
sudo systemctl stop apache2
Ang Pagsusuri ng Pag-gana ng Apache
Upang suriin kung tama ang pag-gana ng Apache, subukan na i-access ang IP address ng server.
1. Suriin ang IP address ng sariling server
hostname -I
O kaya, i-execute ang sumusunod na command upang suriin ang external IP.
curl ifconfig.me
2. Suriin sa Web Browser
Ipasok ang sumusunod sa address bar ng browser.
http://<IP address ng server>/
O kaya, sa local environment:
http://localhost/
Dapat na ipakita ang default page ng Apache (/var/www/html/index.html
). Halimbawa ng default display page:
Apache2 Ubuntu Default Page
It works!
Kung ipapakita ang mensaheng ito, normal na gumagana ang Apache.
Ang Setting ng Firewall
Sa Ubuntu, gumagamit ng UFW (Uncomplicated Firewall) upang i-set ang firewall.
Pagkatapos mag-install ng Apache, maaaring na-block ang access mula sa labas para sa HTTP (port 80) at HTTPS (port 443).
I-set ang Firewall Rules para sa Apache
sudo ufw allow 'Apache'
O kaya, kung pinapayagan din ang HTTPS, i-execute ang sumusunod na command.
sudo ufw allow 'Apache Full'
Suriin ang kalagayan ng Firewall
sudo ufw status
Halimbawa ng output:
Status: active
To Action From
-- ------ ----
Apache ALLOW Anywhere
Apache (v6) ALLOW Anywhere (v6)
Kung ipapakita ito, pinapayagan na ang komunikasyon ng Apache.
Buod
Hanggang dito, naka-install na ang Apache sa Ubuntu at natapos ang pangunahing kagustuhan.
Pangunahing nilalaman na ipinaliwanag sa artikulong ito:
- Paraan ng pag-install ng Apache
- Ang pagsisimula at awtomatikong pagsisimula ng Apache
- Ang pagsusuri ng pag-gana ng Apache (access sa browser)
- Ang setting ng firewall
- Ang pagpapakilala sa pangunahing setting file ng Apache
4. Pagsasadya ng Virtual Host (Pamamahala ng Maramihang Site)
Ano ang Virtual Host?
Ang virtual host ay, mekanismo para sa pagpapatakbo ng maraming domain (o subdomain) sa isang Apache server.
Halimbawa, sa isang server, maaari kang magbigay ng dalawang magkaibang website tulad ng example.com
at test.com
.
Ang mga uri ng virtual host ay may dalawa sa ibaba.
- Name-based Virtual Host (Batay sa Pangalan)
- Pagpapatakbo ng maraming site sa parehong IP address
- Karaniwang paraan ng pagpapatakbo ng web server
- IP-based Virtual Host (Batay sa IP)
- Pagbibigay ng magkaibang site para sa magkaibang IP address
- Kailangan ng maraming network interface sa isang server
Karaniwan, ang Name-based Virtual Host (Virtual Host Batay sa Pangalan) ang ginagamit.
Mga Hakbang sa Pagsasadya ng Virtual Host
1. Lumikha ng Kinakailangang Direktoryo
Upang i-set up ang virtual host, lumikha ng dedikadong direktoryo para sa bawat site.
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
2. Baguhin ang May-ari ng Direktoryo
Upang mabasa ng Apache nang wasto ang mga file, i-set ang may-ari sa www-data
.
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/test.com/public_html
3. Lumikha ng Pansamantalang HTML File
Para sa pagsusuri ng pagtatrabaho, lumikha ng index.html
para sa homepage ng bawat website.
echo "<h1>Maligayang pagdating sa example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Maligayang pagdating sa test.com</h1>" | sudo tee /var/www/test.com/public_html/index.html
4. Lumikha ng Config File ng Virtual Host
Ang config file ng virtual host ay nililikha sa loob ng direktoryo /etc/apache2/sites-available/
.
Pagsasadya ng Virtual Host para sa example.com
Gumamit ng sumusunod na command upang lumikha at i-edit ang config file.
sudo nano /etc/apache2/sites-available/example.com.conf
Nilalaman ng config file:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
Pagsasadya ng Virtual Host para sa test.com
sudo nano /etc/apache2/sites-available/test.com.conf
Idagdag ang sumusunod na nilalaman:
<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
<Directory /var/www/test.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/test.com_error.log
CustomLog ${APACHE_LOG_DIR}/test.com_access.log combined
</VirtualHost>
5. I-activate ang Virtual Host
Pagkatapos lumikha ng config file, i-execute ang a2ensite
command upang i-activate ang virtual host.
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
I-test ang Config ng Apache
Suriin kung walang error sa syntax.
sudo apachectl configtest
Resulta ng output:
Syntax OK
Kung walang problema, i-restart ang Apache.
sudo systemctl restart apache2
6. Pagsusuri ng Pagtatrabaho sa Lokal (Pag-edit ng hosts File)
Upang suriin kung tama ang pagtatrabaho ng virtual host, i-edit ang hosts
file ng lokal na PC.
sudo nano /etc/hosts
Idagdag ang sumusunod na linya:
127.0.0.1 example.com
127.0.0.1 test.com
Pagkatapos i-save, buksan sa browser ang http://example.com/
at suriin na ipapakita ang “Maligayang pagdating sa example.com”. Katulad nito, buksan ang http://test.com/
at kung ipapakita ang “Maligayang pagdating sa test.com”, matagumpay ito.
7. Pagresolba ng Problema
Kung hindi tama ang pagtatrabaho ng virtual host, suriin ang sumusunod.
1. Suriin ang Error Log ng Apache
sudo tail -f /var/log/apache2/error.log
2. Suriin kung Tama ang Pag-activate ng Config File
ls /etc/apache2/sites-enabled/
Kung nakalista nang tama ang .conf
file, activated na ang virtual host.
3. Suriin ang Port Config ng Apache
Upang gumana ang virtual host sa port 80 (HTTP), suriin ang /etc/apache2/ports.conf
.
sudo nano /etc/apache2/ports.conf
Suriin na may sumusunod na paglalarawan:
Listen 80
Buod
Sa seksyong ito, ipinaliwanag ang paano i-set up ang virtual host ng Apache sa Ubuntu.
Ang natutunan sa artikulong ito:
- Konsepto at gamit ng virtual host
- Paglikha ng direktoryo para sa virtual host
- Paglikha at pag-activate ng config file ng virtual host
- Paano suriin ang pagtatrabaho sa lokal na kapaligiran
- Pagresolba ng problema
5. Pagpapatupad ng SSL/TLS (Pagiging HTTPS)
Ano ang SSL/TLS?
Ang SSL (Secure Sockets Layer) at TLS (Transport Layer Security) ay mga teknolohiyang pang-encrypt upang tiyakin ang ligtas na komunikasyon sa internet.
Mga Benepisyo ng Pagpapatupad ng SSL/TLS
✅Pag-encrypt ng Komunikasyon (Binabawasan ang panganib ng pag-eavesdrop at pagbabago ng data)
✅Pagpapahusay ng SEO Rating ng Google (Ang mga site na HTTPS ay pinapaboran sa mga resulta ng paghahanap)
✅Pag-iwas sa Babalang ng Browser (Ang mga site na HTTP ay ipinapakita bilang “Hindi Protektadong Komunikasyon”)
✅Proteksyon ng Online Payment at Impormasyon sa LoginNgayon, ang TLS (TLS 1.2 / 1.3) ang inirerekomenda, at ang SSL 3.0 o mas luma ay hindi na inirerekomenda.
Kumuha ng Libreng SSL Certificate Gamit ang Let’s Encrypt
Ang Let’s Encrypt ay isang certification authority (CA: Certificate Authority) na nagbibigay ng libreng SSL certificate.certbot
gamit upang madaling makuha ang certificate at ilapat sa Apache.
Pag-install ng Let’s Encrypt Client (Certbot)
Unang hakbang, i-install ang certbot
(opisyal na client ng Let’s Encrypt).
sudo apt update
sudo apt install certbot python3-certbot-apache -y
Automatikong SSL Setting ng Apache
Gamit ang Let’s Encrypt, ang certbot --apache
command ay awtomatikong nagse-set ng Apache.
sudo certbot --apache -d example.com -d www.example.com
Kapag pinatakbo ang command na ito, susundan ang mga prosesong ito:
- Authentication ng Domain (HTTP-01 Challenge)
- Pag-issue ng SSL Certificate
- SSL Setting ng Apache
- Setting ng HTTPS Redirect
Pagsusuri ng SSL Functionality
Bisitahin ang sumusunod na URL upang suriin na aktibo ang HTTPS.
https://example.com/
Kung makikita ang lock icon sa address bar ng browser, matagumpay na ito.
Manwal na SSL Setting sa Apache
Kung hindi gagamit ng certbot --apache
, sundin ang mga hakbang na ito para sa manwal na setting.
1. I-activate ang SSL Module ng Apache
sudo a2enmod ssl
sudo systemctl restart apache2
2. Setting ng SSL Virtual Host
Baguhin ang virtual host setting /etc/apache2/sites-available/example.com-le-ssl.conf
:
sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
Nilalaman ng Setting:
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

3. I-activate ang Setting at I-restart ang Apache
sudo a2ensite example.com-le-ssl.conf
sudo systemctl restart apache2
Awtomatikong Pag-update ng SSL Certificate
Ang certificate ng Let’s Encrypt ay epektibo lamang ng 90 araw.
Sa pamamagitan ng awtomatikong pag-update, maiiwasan ang manual na pag-update.
1. I-test ang Awtomatikong Pag-update ng Certbot
sudo certbot renew --dry-run
2. Suriin ang Schedule ng Awtomatikong Pag-update ng Certificate
Ang awtomatikong pag-update ng Certbot ay naka-schedule sa /etc/cron.d/certbot
.
sudo systemctl list-timers | grep certbot
Troubleshooting ng SSL
1. Hindi Naaplay ang SSL Certificate
Solusyong: I-restart ang Apache at suriin ang setting
sudo systemctl restart apache2
sudo apachectl configtest
2. Nag-expire na ang Validity ng Certificate
Solusyong: Manwal na i-update ang certificate
sudo certbot renew --force-renewal
3. Nabigo ang Authentication ng Let’s Encrypt
Solusyong: Suriin ang Firewall Setting
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
Buod
Sa seksyong ito, inilarawan nang detalyado ang paraan ng pagpapatupad ng libreng SSL gamit ang Let’s Encrypt.
Ang natutunan sa artikulong ito:
- Basic Knowledge ng SSL/TLS
- SSL Setting ng Apache Gamit ang Let’s Encrypt
- Manwal na SSL Setting
- Awtomatikong Pag-update ng SSL Certificate
- Troubleshooting ng SSL
6. Pagpapatibay ng Seguridad ng Web Server
Pag-set up ng Firewall (UFW)
Sa Ubuntu, mahalagang gumamit ng UFW (Uncomplicated Firewall) upang i-block ang hindi kinakailangang komunikasyon.
Suriin ang Kasalukuyang Setting ng Firewall
sudo ufw status
I-allow Lamang ang Kinakailangang Port
Salantala, i-block ang lahat ng koneksyon at buksan lamang ang kinakailangang port.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Mga Port na Bubuksan
- SSH (Port 22)
sudo ufw allow 22/tcp
- HTTP (Port 80)
sudo ufw allow 80/tcp
- HTTPS (Port 443)
sudo ufw allow 443/tcp
I-activate ang Firewall
sudo ufw enable
Pagpapatibay ng Seguridad ng SSH
Kung iiwan sa default, madaling maging target ng brute force attack ang SSH, kaya kailangang mag-aplay ng tamang setting.
Baguhin ang Port ng SSH
sudo nano /etc/ssh/sshd_config
Ang mga bahaging papalitan:
Port 2222 # Baguhin mula 22 patungo sa 2222 (anumang numero ng port)
PermitRootLogin no # Iprohibit ang login bilang root
PasswordAuthentication no # I-disable ang password authentication (payagan lamang ang SSH key authentication)
Pagkatapos ng pagbabago, i-restart ang SSH:
sudo systemctl restart ssh
Pag-install ng Fail2Ban
Ang Fail2Ban ay isang tool na pansamantalang nagbo-block ng IP address na sumusubok ng hindi awthorizado na login sa SSH.
sudo apt install fail2ban -y
I-edit ang config file:
sudo nano /etc/fail2ban/jail.local
Magdagdag ng sumusunod na setting:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 600
I-activate ang Fail2Ban:
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
Security Setting ng Apache
Itago ang Impormasyon ng Bersyon
sudo nano /etc/apache2/conf-available/security.conf
Baguhin ang sumusunod na setting:
ServerTokens Prod
ServerSignature Off
I-apply ang setting:
sudo systemctl restart apache2
I-disable ang Paglalahad ng Listahan ng Directory
sudo nano /etc/apache2/apache2.conf
Hanapin ang sumusunod na linya at tanggalin ang Indexes
:
<Directory /var/www/>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
I-apply ang setting:
sudo systemctl restart apache2
I-disable ang Hindi Kinakailangang Apache Module
sudo a2dismod autoindex
sudo a2dismod status
sudo systemctl restart apache2
Pagdaragdag ng Security Header
Upang protektahan ang website, magdagdag ng angkop na security header.
I-activate ang mod_headers
sudo a2enmod headers
sudo systemctl restart apache2
I-set up ang Header
sudo nano /etc/apache2/sites-available/example.com.conf
Magdagdag ng sumusunod sa loob ng <VirtualHost>
:
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>
I-apply ang setting:
sudo systemctl restart apache2
Troubleshooting
Suriin ang Setting ng Firewall
sudo ufw status
Suriin ang Error sa Setting ng Apache
sudo apachectl configtest
Output:
Syntax OK
Kung Hindi Makakonekta sa SSH
Kung hindi makakonekta sa SSH pagkatapos baguhin ang port, ikonekta gamit ang bagong port tulad ng sumusunod.
ssh -p 2222 user@server-ip
Buod
Sa seksyong ito, ipinaliwanag ang mga hakbang sa pagpapatibay ng seguridad upang ligtas na i-operate ang web server.
Ang natutunan sa artikulong ito:
- Pag-set up ng UFW (Firewall)
- Proteksyon ng SSH (Pagbabago ng Port · Fail2Ban)
- Security Setting ng Apache (Pagkondena ng Impormasyon ng Bersyon · Pag-disable ng Listahan ng Directory)
- Pagdaragdag ng Security Header
7. Pag-optimize ng Pagganap
Pag-tune ng Apache
Sa default na setting ng Apache, maaaring hindi optimal ang efficiency ng pagproseso ng mga request.
Sa pamamagitan ng pag-adjust ng mga sumusunod na setting, maaaring makamit ang mas mataas na pagganap.
Optimization ng MPM (Multi-Processing Module)
Ang MPM (Multi-Processing Module) ay nagdedesisyon kung paano ipoproseso ng Apache ang mga request.
Suriin ang kasalukuyang setting ng MPM:
apachectl -M | grep mpm
Halimbawa ng output:
mpm_prefork_module (shared)
Kung mpm_prefork_module
ito, inirerekomenda na baguhin ito sa mas mabilis na mpm_event
.
Paraan ng pagbabago:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
Pag-activate ng KeepAlive
Sa pamamagitan ng pag-activate ng KeepAlive (persistent connection), maaaring muling gamitin ng client ang parehong connection, na nagre-reduce ng bilang ng mga request.
I-edit ang config file:
sudo nano /etc/apache2/apache2.conf
Suriin ang mga sumusunod na setting:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Matapos ang setting, i-restart ang Apache:
sudo systemctl restart apache2
Paggamit ng Cache
Sa pamamagitan ng paggamit ng browser cache at server cache, binabawasan ang hindi kinakailangang mga request at pinapabuti ang bilis ng response.
Pag-activate ng mod_expires
(Browser Cache)
sudo a2enmod expires
sudo systemctl restart apache2
Magdagdag ng sumusunod sa config file /etc/apache2/sites-available/example.com.conf
:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Matapos ang setting, i-restart ang Apache:
sudo systemctl restart apache2
Pag-activate ng mod_cache
(Server Cache)
sudo a2enmod cache cache_disk
sudo systemctl restart apache2
Magdagdag ng sumusunod sa config file /etc/apache2/sites-available/example.com.conf
:
<IfModule mod_cache.c>
CacheEnable disk /
CacheRoot /var/cache/apache2/mod_cache_disk
CacheDefaultExpire 86400
</IfModule>
I-restart ang Apache:
sudo systemctl restart apache2
Pag-Introduce ng Compression
Gamit ang mod_deflate
, pinipress ang data ng website upang bawasan ang laki ng transfer.
Pag-activate ng mod_deflate
sudo a2enmod deflate
sudo systemctl restart apache2
Magdagdag ng sumusunod sa config file /etc/apache2/sites-available/example.com.conf
:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Matapos ang setting, i-restart ang Apache:
sudo systemctl restart apache2
Pag-limit ng Resources
Upang maghanda sa malaking bilang ng requests o hindi wastong access, mahalaga ring mag-set ng limitasyon ng resources ng Apache.
Pag-activate ng mod_ratelimit
sudo a2enmod ratelimit
sudo systemctl restart apache2
Magdagdag ng sumusunod sa config file /etc/apache2/sites-available/example.com.conf
:
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 200
</Location>
Matapos ang setting, i-restart ang Apache:
sudo systemctl restart apache2
Troubleshooting
Ipinapakita rito ang mga paraan ng pagtugon kung may problema pagkatapos ng performance tuning.
Suriin ang Error Log ng Apache
sudo tail -f /var/log/apache2/error.log
Suriin ang Load Situation ng Apache
sudo apachectl status
Suriin ang CPU at Memory Usage ng Server
top
o
htop
(kung wala ang htop
, i-install gamit ang sudo apt install htop
)
Buod
Sa seksyong ito, ipinaliwanag ang mga paraan upang mapabuti ang pagganap ng web server.
Sa artikulong ito natutunan:
- Pag-tune ng Apache (Optimization ng MPM · Setting ng KeepAlive)
- Paggamit ng Cache (Browser Cache · Server Cache)
- Data Compression (Pag-Introduce ng mod_deflate)
- Pag-limit ng Resources (Access Control gamit ang mod_ratelimit)
8. Pagresolba ng mga Problema
Ang Apache ay hindi nagsisimula o humihinto
Suriin ang Status ng Apache
sudo systemctl status apache2
Halimbawa ng output:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since ...
Kung Active: failed
, may nagaganap na error.
Suriin ang Error Log
sudo journalctl -xe
sudo tail -f /var/log/apache2/error.log
Suriin ang Ginagamit na Port
sudo netstat -tulnp | grep ':80'
o
sudo lsof -i:80
Kung may salungatan sa port, i-edit ang /etc/apache2/ports.conf
at itakda ang angkop na port.
Mga Error na Kaugnay ng SSL Certificate
Ang SSL Certificate ay Nag-expire
sudo certbot renew --force-renewal
AH02572: Failed to configure at least one certificate
Buksan ang config file ng Apache na /etc/apache2/sites-available/example.com-le-ssl.conf
at suriin ang sumusunod:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Kung tama ang setting, i-restart ang Apache:
sudo systemctl restart apache2
Ang Website ay Hindi Lumalabas (403, 404, 500 Error)
403 Forbidden
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html
404 Not Found
Buksan ang virtual host config na /etc/apache2/sites-available/example.com.conf
at suriin ang path ng DocumentRoot
.
DocumentRoot /var/www/example.com/public_html
Bukod dito, kung hindi naka-enable ang mod_rewrite
:
sudo a2enmod rewrite
sudo systemctl restart apache2
500 Internal Server Error
Suriin ang error log:
sudo tail -f /var/log/apache2/error.log
Iwasan sa pamamagitan ng pag-rename ng .htaccess
:
mv /var/www/example.com/public_html/.htaccess /var/www/example.com/public_html/.htaccess.bak
Mga Problema sa Mataas na Load o Performance
Suriin ang Load Situation ng Apache
top
o
htop
I-disable ang Walang Saysay na Apache Modules
sudo a2dismod status
sudo a2dismod autoindex
sudo systemctl restart apache2
Optimization ng Cache
sudo a2enmod cache cache_disk
Mga Problema na Kaugnay ng Network
Suriin ang IP Address ng Server
ip a
o
curl ifconfig.me
Suriin kung Nakabukas ang Port
sudo netstat -tulnp | grep LISTEN
o
sudo lsof -i :80
Kung wala sa list ang port 80 (HTTP) o 443 (HTTPS), i-adjust ang firewall:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
Buod
Sa seksyong ito, ipinaliwanag ang mga karaniwang dahilan at solusyon sa mga error na madalas mangyari sa Ubuntu Web Server (Apache).
Ang natutunan sa artikulong ito:
- Paraan ng paghawak kapag hindi nagsisimula ang Apache
- Pagresolba ng mga error na kaugnay ng SSL Certificate
- Mga dahilan at pagwawasto ng 403 / 404 / 500 Error
- Optimization ng Performance
- Pagsusuri ng Network Connection
9. Buod
Ang mga natutunan hanggang ngayon
Balikan natin ang mga nilalaman na ipinaliwanag sa bawat seksyon.
Seksiyon | Mga Nilalaman |
---|---|
1. Panimula | Mga batayang konsepto ng Ubuntu Web server at layunin ng artikulong ito |
2. Pag-install at initial na pagtatakda ng Ubuntu | Pag-install ng OS, pag-update, pagtatakda ng firewall |
3. Pag-install at batayang pagtatakda ng Apache | Pag-install ng Apache, pag-activate, at pagsusuri ng pagtatrabaho |
4. Pagtatatakda ng Virtual Host | Pagtatatakda para sa pagho-host ng maraming website |
5. Pag-install ng SSL/TLS | Paggamit ng Let’s Encrypt para sa HTTPS |
6. Pagpalakas ng seguridad ng Web server | Pagtatatakda ng firewall, proteksyon ng SSH, seguridad ng Apache |
7. Pag-optimize ng performance | Cache, pag-compress ng data, pagtatakda ng pag-optimize ng Apache |
8. Pag-troubleshoot | Pagresolba ng error ng Apache, pagkukumpuni ng problema sa SSL, pagtugon sa load |
Sunod na Hakbang
Kapag natapos na ang batayang pagtatakda ng Ubuntu Web server, maaari kang mag-aral ng mga sumusunod namas advanced na pagtatakda o teknolohiya upang magtayo ng mas praktikal na kapaligiran ng server.
✅Pag-install ng WordPress o PHP application✅Pagtatatakda ng database server (MySQL / MariaDB)✅Pagbuo ng reverse proxy (Nginx + Apache)✅Pagbuo ng auto-scale environment(paggamit ng AWS, GCP, Azure)
✅Pamamahala ng log at monitoring(paggamit ng fail2ban o logwatch)
Mga Madalas na Tanong (FAQ)
Q1: Alin ang dapat piliin sa Ubuntu, Nginx o Apache?
A1:Kung static content ang pangunahing ipinapahayag, Nginx; kung maraming dynamic content (PHP at iba pa), Apache ang inirerekomenda.
Nginx ay maaari ring gamitin bilang reverse proxy, at maaaring pagsamahin sa Apache.
Q2: Maaari bang awtomatikong i-update ang SSL certificate?
A2:Kung i-install ang Certbot, posible ang awtomatikong pag-update.Gamitin ang commandsudo certbot renew --dry-run
para sa pagsubok, at itakda angcron
sa schedule.
Q3: Paano mas palakasin ang seguridad ng Web server?
A3:Gamitin ang Fail2Ban para pigilan ang brute force attack, itago ang impormasyon ng bersyon ng Apache, at i-disable ang hindi kinakailangang module bilang batayang hakbang.
Q4: Paano mapabuti ang performance ng Apache?
A4:Piliin ang tamang MPM (event / worker), itakda ang cache (mod_cache), at gawin ang pag-compress ng data (mod_deflate)。
Q5: Bakit nagiging “403 Forbidden” error ang website?
A5:Suriin kung ang ownership ng directory ay nakatakda sa www-data
, at itakda ang tamang permissions gamit ang chmod -R 755
。
Buod
Ang pagbuo ng Ubuntu Web server ay nangangailangan ng maraming hakbang mula sa batayang pagtatakda hanggang sa advanced na pag-optimize, ngunit kapag naintindihan, maaari kang magtayo ng napakalakas na kapaligiran.
🚀Gamitin ang artikulong ito bilang gabay habang nagbubuo ng mas ligtas at mabilis na Web server, at i-upgrade ang iyong mga kasanayan sa operasyon!🚀