Panduan Lengkap untuk Pelayan Web Ubuntu | Apache + SSL + Pengoptimuman [Mesra Pemula]

目次

1. Pengenalan

Apakah Pelayan Web Ubuntu?

Pelayan web adalah sistem yang menyampaikan laman web melalui internet. Perisian pelayan web popular termasuk Apache, Nginx, dan LiteSpeed, tetapi yang paling digunakan pada Ubuntu ialah Apache.
Ubuntu adalah ringan, sangat stabil, dan sumber terbuka, menjadikannya pilihan popular untuk individu dan perniagaan. Ia amat sesuai untuk membina tumpukan LAMP (Linux, Apache, MySQL/MariaDB, PHP), yang biasa digunakan untuk menjalankan laman web dan aplikasi web.

Untuk Siapa Panduan Ini?

Artikel ini direka untuk pemula yang menyediakan pelayan web untuk pertama kali. Ia menyediakan panduan langkah demi langkah tentang cara memasang Apache pada Ubuntu, menyediakan hos maya, menyediakan sijil SSL, mengoptimumkan prestasi, dan meningkatkan keselamatan.

Apa Yang Anda Akan Belajar

  • Cara menyediakan pelayan web pada Ubuntu (Memasang dan menyediakan Apache)
  • Menyediakan hos maya untuk mengurus pelbagai laman web
  • Memasang sijil SSL percuma dengan Let’s Encrypt
  • Meningkatkan keselamatan dan mengoptimumkan prestasi pelayan
  • Menyelesaikan masalah biasa pelayan web
年収訴求

2. Memasang dan Persediaan Awal Ubuntu

Keperluan Sistem

Untuk menjalankan Ubuntu sebagai pelayan web, spesifikasi sistem minimum berikut disyorkan:

ComponentMinimum RequirementsRecommended Requirements
OSUbuntu 22.04 LTSUbuntu 22.04 LTS
CPU1GHz or higher2GHz or higher
Memory512MB2GB or higher
Storage10GB or more20GB or more
NetworkInternet connectionHigh-speed connection recommended

Memuat Turun dan Memasang Ubuntu

Anda boleh memuat turun Ubuntu dari laman web rasmi: https://ubuntu.com/download/server. Setelah anda memperoleh fail ISO, anda boleh memasangnya menggunakan VirtualBox atau VMware untuk persekitaran maya, atau pada pelayan khusus atau VPS.

Langkah Pemasangan:

  1. Cipta media pemasangan
  • Gunakan pemacu USB (dengan alat seperti Rufus)
  • Pasang fail ISO dalam mesin maya
  1. Ikuti penyihir pemasangan
  • Tetapkan bahasa kepada Inggeris
  • Semak sambungan rangkaian
  • Konfigurasi nama pengguna dan kata laluan
  • Pasang pelayan SSH (pilihan, boleh dilakukan kemudian)
  1. Lengkapkan persediaan OS dan mulakan semula
  2. Log masuk dan mulakan konfigurasi awal

Persediaan Awal Asas

Selepas pemasangan, lakukan langkah persediaan awal berikut:

  1. Kemas kini pakej sistem
sudo apt update && sudo apt upgrade -y

→ Ini memastikan bahawa tambalan keselamatan dan kemas kini perisian diaplikasikan.

  1. Tetapkan zon masa
sudo timedatectl set-timezone America/New_York

→ Tetapkan zon masa untuk sepadan dengan lokasi pelayan anda.

  1. Dayakan pagar api
sudo ufw enable

→ Ini melindungi pelayan daripada akses tidak dibenarkan.

  1. Konfigurasi SSH (untuk pengurusan jauh)
  • Semak jika SSH diaktifkan: sudo systemctl status ssh
  • Jika tidak diaktifkan, mulakan: sudo systemctl enable --now ssh

Setelah tetapan awal ini diaplikasikan, pelayan Ubuntu sedia untuk dikonfigurasi sebagai pelayan web.

3. Memasang dan Menyediakan Apache

Apakah Apache?

Apache (secara rasmi Apache HTTP Server) adalah perisian pelayan web sumber terbuka yang dikenali kerana kestabilan, skalabiliti, dan keselamatannya. Kira-kira 30% pelayan web di seluruh dunia menggunakan Apache.

Ciri Utama:

  • Percuma dan sumber terbuka
  • Arsitektur modular untuk penyesuaian mudah
  • Menyokong SSL/TLS untuk sambungan HTTPS selamat
  • Sokongan hos maya untuk mengurus pelbagai laman web

Memasang Apache

Pada Ubuntu, Apache boleh dipasang dengan mudah menggunakan pengurus pakej apt.

Pasang Apache

Jalankan arahan berikut untuk memasang Apache:

sudo apt update
sudo apt install apache2 -y

Sahkan Pemasangan

Selepas pemasangan, semak versi Apache:

apache2 -v

Contoh output:

Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-07-01T12:34:56

Jika anda melihat mesej ini, Apache dipasang dengan berjaya.

Memulakan, Menghentikan, dan Memulakan Semula Apache

Apache diurus menggunakan arahan systemctl.

Mulakan Apache

sudo systemctl start apache2

Dayakan Apache untuk Dimulakan semasa Boot

sudo systemctl enable apache2

Semak Status Apache

Untuk mengesahkan bahawa Apache sedang berjalan:

sudo systemctl status apache2

Jika Apache sedang berjalan, anda akan melihat status “active (running)”.

Mulakan Semula atau Hentikan Apache

Jika anda perlu memulakan semula Apache selepas membuat perubahan konfigurasi:

sudo systemctl restart apache2

Untuk menghentikan Apache secara sementara:

sudo systemctl stop apache2

4. Menyediakan Virtual Host (Menguruskan Pelbagai Laman Web)

Apa itu Virtual Host?

Virtual host ialah ciri yang membolehkan satu pelayan Apache untuk menghoskan pelbagai domain (atau subdomain).
Sebagai contoh, satu pelayan boleh menghoskan example.com dan test.com.

Terdapat dua jenis virtual host:

  1. Virtual Host Berasaskan Nama
  • Menghoskan pelbagai laman pada alamat IP yang sama
  • Cara paling umum untuk menguruskan pelbagai laman web
  1. Virtual Host Berasaskan IP
  • Setiap laman diberikan alamat IP yang berbeza
  • Memerlukan berbilang antara muka rangkaian pada pelayan

Biasanya, virtual hosting berasaskan nama digunakan.

Langkah-langkah untuk Menyediakan Virtual Host

1. Cipta Direktori untuk Setiap Laman

Setiap virtual host memerlukan direktori khusus untuk menyimpan fail laman webnya.

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

2. Tukar Pemilikan Direktori

Untuk memastikan Apache dapat mengakses fail, tetapkan pemilik kepada 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. Cipta Fail HTML Ujian

Untuk pengesahan, cipta fail index.html untuk setiap laman.

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. Cipta Fail Konfigurasi Virtual Host

Fail konfigurasi virtual host disimpan dalam /etc/apache2/sites-available/.

Konfigurasi untuk example.com

Cipta dan edit fail konfigurasi:

sudo nano /etc/apache2/sites-available/example.com.conf

Tambah konfigurasi berikut:

<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>

Konfigurasi untuk test.com

sudo nano /etc/apache2/sites-available/test.com.conf

Tambah kandungan berikut:

<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. Dayakan Virtual Host

Setelah fail konfigurasi dicipta, dayakan mereka dengan a2ensite.

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

Uji Konfigurasi Apache

Periksa ralat sintaks:

sudo apachectl configtest

Jika outputnya:

Syntax OK

Mulakan semula Apache untuk melaksanakan perubahan:

sudo systemctl restart apache2

6. Menguji Secara Tempatan (Menyunting Fail hosts)

Untuk mengesahkan bahawa virtual host berfungsi dengan betul, sunting fail hosts tempatan anda.

sudo nano /etc/hosts

Tambah baris berikut:

127.0.0.1 example.com
127.0.0.1 test.com

Selepas disimpan, buka pelayar dan masukkan:

http://example.com/

Jika anda melihat “Welcome to example.com”, pemasangan berjaya.

5. Mengaktifkan SSL/TLS (HTTPS)

Apa itu SSL/TLS?

SSL (Secure Sockets Layer) dan TLS (Transport Layer Security) adalah teknologi penyulitan yang mengamankan komunikasi di internet.

Manfaat SSL/TLS:

Menyulitkan komunikasi (mengurangkan risiko kecurian data dan pengubahsuaian)
Meningkatkan kedudukan SEO (Google memberi keutamaan kepada laman HTTPS dalam hasil carian)
Mencegah amaran pelayar (laman HTTP mungkin memaparkan “Tidak Selamat”)
Mengamankan pembayaran dalam talian dan kelayakan log masuk

Menggunakan Let’s Encrypt untuk SSL Percuma

Let’s Encrypt ialah pihak berkuasa pensijilan yang menyediakan sijil SSL percuma. Kami menggunakan certbot untuk memasangnya dengan mudah.

Pasang Certbot

sudo apt update
sudo apt install certbot python3-certbot-apache -y

Konfigurasi SSL Secara Automatik untuk Apache

sudo certbot --apache -d example.com -d www.example.com

Sahkan HTTPS Berfungsi

Selepas pemasangan, periksa:

https://example.com/

Jika anda melihat ikon kunci dalam pelayar, SSL berfungsi.

6. Meningkatkan Keselamatan Pelayan Web

Menetapkan Firewall (UFW)

Aktifkan Firewall dan Buka Port yang Diperlukan

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw enable

Melindungi SSH

Tukar Port SSH

sudo nano /etc/ssh/sshd_config

Tukar:

Port 2222  # Change 22 to a custom port

Mulakan semula SSH:

sudo systemctl restart ssh

7. Pengoptimuman Prestasi

Penalaan Apache

Secara lalai, Apache tidak selalu dioptimumkan untuk mengendalikan trafik tinggi dengan cekap.
Anda boleh menyesuaikan tetapan berikut untuk meningkatkan prestasi.

Mengoptimumkan MPM (Modul Pemprosesan Berbilang)

MPM (Modul Pemprosesan Berbilang) menentukan cara Apache memproses permintaan.

Semak konfigurasi MPM semasa:

apachectl -M | grep mpm

Contoh output:

mpm_prefork_module (shared)

Jika anda melihat mpm_prefork_module, pertimbangkan untuk menukar kepada mpm_event bagi prestasi yang lebih baik.

Tukar kepada MPM Event:

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

Mengaktifkan KeepAlive

KeepAlive membenarkan sambungan berterusan, mengurangkan bilangan permintaan baru.

Edit fail konfigurasi Apache:

sudo nano /etc/apache2/apache2.conf

Tambah atau ubah suai tetapan berikut:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Mulakan semula Apache:

sudo systemctl restart apache2

Memanfaatkan Caching

Menggunakan caching pelayar dan sisi pelayan mengurangkan permintaan berulang, meningkatkan masa respons.

Aktifkan mod_expires untuk Caching Pelayar

sudo a2enmod expires
sudo systemctl restart apache2

Edit fail konfigurasi virtual host anda:

sudo nano /etc/apache2/sites-available/example.com.conf

Tambah:

<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>

Mulakan semula Apache:

sudo systemctl restart apache2

Mengaktifkan Pemampatan Gzip

Aktifkan pemampatan untuk mengurangkan saiz fail dan meningkatkan kelajuan pemuatan.

Aktifkan mod_deflate

sudo a2enmod deflate
sudo systemctl restart apache2

Edit fail konfigurasi virtual host:

sudo nano /etc/apache2/sites-available/example.com.conf

Tambah:

<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>

Mulakan semula Apache:

sudo systemctl restart apache2

Mengehadkan Sumber

Untuk mengelakkan penggunaan sumber yang berlebihan, hadkan bilangan sambungan per IP.

Aktifkan mod_ratelimit

sudo a2enmod ratelimit
sudo systemctl restart apache2

Edit fail konfigurasi virtual host:

sudo nano /etc/apache2/sites-available/example.com.conf

Tambah:

<Location />
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Location>

Mulakan semula Apache:

sudo systemctl restart apache2

8. Penyelesaian Masalah

Apache Tidak Dapat Dimulakan atau Berhenti Secara Tidak Dijangka

Periksa Status Apache

sudo systemctl status apache2

Jika output mengandungi:

Active: failed

Maka terdapat ralat.

Periksa Log Ralat

sudo journalctl -xe
sudo tail -f /var/log/apache2/error.log

Periksa Konflik Port

sudo netstat -tulnp | grep ':80'

Atau:

sudo lsof -i:80

Isu Sijil SSL

Sijil SSL Tamat Tempoh

sudo certbot renew --force-renewal

Ralat Konfigurasi SSL Apache

Edit fail konfigurasi SSL Apache:

sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf

Sahkan:

SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

Mulakan semula Apache:

sudo systemctl restart apache2

Laman Web Tidak Dimuat (Ralat 403, 404, 500)

403 Dilarang

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html

404 Tidak Ditemui

Periksa konfigurasi virtual host:

DocumentRoot /var/www/example.com/public_html

Dayakan mod_rewrite jika diperlukan:

sudo a2enmod rewrite
sudo systemctl restart apache2

500 Ralat Pelayan Dalaman

Periksa log ralat:

sudo tail -f /var/log/apache2/error.log

Cuba menamakan semula .htaccess:

mv /var/www/example.com/public_html/.htaccess /var/www/example.com/public_html/.htaccess.bak

9. Ringkasan

Apa Yang Anda Pelajari

Mari kita semak topik utama yang dibincangkan dalam panduan ini.

SectionKey Points
1. IntroductionOverview of Ubuntu Web Server and the purpose of this guide
2. Installing and Initial Setup of UbuntuSetting up Ubuntu, updating packages, and configuring the firewall
3. Installing and Configuring ApacheInstalling Apache, starting the service, and verifying functionality
4. Configuring Virtual HostsHosting multiple websites on a single Apache server
5. Enabling SSL/TLSUsing Let’s Encrypt for HTTPS setup
6. Enhancing Web Server SecurityFirewall setup, SSH security, and Apache hardening
7. Performance OptimizationUsing caching, compression, and tuning Apache settings
8. TroubleshootingFixing Apache errors, SSL issues, and common website errors

Langkah Seterusnya

Kini server web Ubuntu anda sudah berfungsi, pertimbangkan untuk mempelajari topik lanjutan bagi meningkatkan keupayaan server anda:

Menyebarkan aplikasi WordPress atau PHP
Menetapkan pelayan pangkalan data (MySQL / MariaDB)
Mengkonfigurasi Nginx sebagai proksi songsang untuk Apache
Melaksanakan auto-scaling dengan platform awan (AWS, GCP, Azure)
Log dan pemantauan lanjutan (Fail2Ban, Logwatch, Prometheus)

Soalan Lazim (FAQ)

S1: Haruskah saya memilih Nginx atau Apache untuk pelayan web saya?

J1: Jika laman web anda kebanyakannya menyajikan kandungan statik, Nginx disarankan. Jika anda memerlukan pemprosesan kandungan dinamik (seperti PHP), Apache adalah pilihan yang lebih baik. Anda juga boleh menggunakan Nginx sebagai proksi songsang di hadapan Apache.

S2: Bolehkah sijil SSL diperbaharui secara automatik?

J2: Ya, Certbot menyokong pembaharuan automatik. Anda boleh memeriksa status pembaharuan dengan:

sudo certbot renew --dry-run

Untuk pembaharuan sepenuhnya automatik, disarankan untuk menetapkan kerja cron.

S3: Bagaimana saya boleh meningkatkan keselamatan pelayan saya lebih lanjut?

J3: Laksanakan Fail2Ban untuk menghalang serangan brute-force, sembunyikan butiran versi Apache, lumpuhkan modul yang tidak digunakan, dan tegakkan amalan keselamatan SSH yang kuat.

S4: Bagaimana saya boleh meningkatkan prestasi Apache?

J4: Tukar kepada MPM Event, dayakan caching (mod_cache), gunakan pemampatan gzip (mod_deflate), dan optimumkan tetapan KeepAlive.

S5: Mengapa saya mendapat ralat “403 Forbidden”?

J5: Pastikan pemilikan direktori ditetapkan kepada www-data dan laraskan kebenaran fail:

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html

Pemikiran Akhir

Menetapkan pelayan web Ubuntu melibatkan pelbagai langkah, dari pemasangan dan konfigurasi hingga pengoptimuman dan penyelesaian masalah. Walau bagaimanapun, setelah anda memahami prosesnya, anda boleh membina dan mengurus persekitaran hosting web yang berkuasa.

🚀 Ikuti panduan ini untuk membuat pelayan web yang selamat, pantas, dan boleh dipercayai, serta terus meningkatkan kemahiran anda sebagai pentadbir pelayan! 🚀