15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
30.10.2024
1 +1

Sites-Enabled dan Sites-Available: Panduan Lengkap untuk NGINX dan Apache

NGINX dan Apache tetap menjadi dua web server paling dominan di internet — dan ada alasan bagusnya. Keduanya telah teruji dalam pertempuran, sangat dapat dikonfigurasi, dan mampu melayani situs web yang kompleks dan lalu lintas tinggi dengan mudah. Salah satu konsep paling penting bagi administrator sistem apa pun yang mengelola server berbasis Linux adalah memahami bagaimana web server ini menangani konfigurasi situs web melalui struktur direktori sites-available dan sites-enabled.

Baik Anda menjalankan satu situs web atau mengelola puluhan virtual host pada paket VPS Hosting, menguasai model konfigurasi ini akan memberi Anda kontrol presisi atas situs mana yang aktif, mana yang dalam tahap persiapan, dan bagaimana sumber daya server Anda dialokasikan.

Panduan ini menyediakan panduan komprehensif langkah demi langkah tentang cara mengaktifkan, menonaktifkan, dan mengelola situs web menggunakan NGINX dan Apache pada sistem Linux.

Memahami sites-available dan sites-enabled

Baik NGINX maupun Apache menggunakan model dua direktori untuk memisahkan konfigurasi situs dari aktivasi situs. Pola arsitektur ini elegan dalam kesederhanaan dan sangat kuat dalam praktiknya.

sites-available

Direktori /etc/nginx/sites-available/ atau /etc/apache2/sites-available/ bertindak sebagai perpustakaan semua konfigurasi situs yang mungkin. Setiap situs web yang Anda maksudkan untuk dihosting di server mendapatkan file konfigurasi sendiri yang disimpan di sini. Yang penting, file di direktori ini tidak aktif — mereka mendefinisikan konfigurasi tetapi tidak melayani lalu lintas apa pun sampai secara eksplisit diaktifkan.

sites-enabled

Direktori /etc/nginx/sites-enabled/ atau /etc/apache2/sites-enabled/ berisi tautan simbolis yang menunjuk ke file konfigurasi di sites-available. Hanya situs dengan tautan symlink aktif di direktori ini yang dimuat oleh web server dan disajikan kepada pengunjung.

Pemisahan ini menawarkan beberapa keuntungan utama:

  • Penonaktifan non-destruktif: Anda dapat menonaktifkan situs tanpa menghapus konfigurasinya.
  • Penyebaran cepat: Menyiapkan situs baru semudah membuat tautan symlink.
  • Organisasi yang bersih: Semua konfigurasi ada di satu tempat, terlepas dari apakah mereka aktif.

Mengelola Situs Web dengan Apache

1. Konfigurasi Virtual Host Apache

Apache menggunakan Virtual Host untuk melayani beberapa situs web dari satu instans server. Setiap situs web mendapatkan file konfigurasi sendiri yang memberi tahu Apache cara menangani permintaan masuk untuk domain tersebut — termasuk akar dokumen, jalur logging, alias server, dan banyak lagi.

File konfigurasi untuk virtual host Apache disimpan di:

/etc/apache2/sites-available/

#### Membuat File Konfigurasi Virtual Host

Untuk membuat file konfigurasi untuk situs bernama test.oo.md, jalankan:

sudo nano /etc/apache2/sites-available/test.oo.md.conf

Di dalam file, tentukan blok virtual host Anda:

<VirtualHost *:80>
    ServerAdmin admin@test.oo.md
    ServerName your_domain_or_IP
    ServerAlias www.test.oo.md
    DocumentRoot /var/www/test.oo.md

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

> Catatan: Ganti your_domain_or_IP dengan nama domain atau alamat IP server Anda yang sebenarnya. Direktif ServerAlias memungkinkan Apache merespons subdomain www juga.

Simpan dan keluar dari file setelah selesai.

2. Aktifkan Situs dengan a2ensite

Setelah file konfigurasi tersedia, aktifkan situs menggunakan perintah a2ensite (Apache 2 Enable Site):

sudo a2ensite test.oo.md.conf

Perintah ini secara otomatis membuat tautan simbolis dari sites-available ke sites-enabled:

/etc/apache2/sites-enabled/test.oo.md.conf -> /etc/apache2/sites-available/test.oo.md.conf

Situs sekarang siap untuk disajikan, tetapi perubahan tidak akan berlaku sampai Apache dimuat ulang.

3. Uji Konfigurasi Apache

Sebelum memuat ulang Apache, selalu validasi sintaks konfigurasi Anda untuk menangkap kesalahan apa pun:

sudo apachectl configtest

Output yang berhasil akan menunjukkan:

Syntax OK

Jika ada kesalahan, Apache akan menjelaskan masalahnya dan nomor baris — perbaiki ini sebelum melanjutkan.

4. Muat Ulang Apache untuk Menerapkan Perubahan

sudo systemctl reload apache2

Menggunakan reload daripada restart lebih disukai di lingkungan produksi karena menerapkan konfigurasi baru tanpa menghilangkan koneksi aktif.

5. Nonaktifkan Situs dengan a2dissite

Untuk membawa situs offline tanpa menghapus konfigurasinya, gunakan perintah a2dissite:

sudo a2dissite test.oo.md.conf

Ini menghapus tautan simbolis dari sites-enabled. File konfigurasi di sites-available tetap tidak tersentuh. Muat ulang Apache untuk menerapkan:

sudo systemctl reload apache2

Mengelola Situs Web dengan NGINX

1. Konfigurasi Server Block NGINX

NGINX menggunakan Server Block — setara fungsional dengan Virtual Host Apache. File konfigurasi server block disimpan di:

/etc/nginx/sites-available/

#### Membuat File Konfigurasi Server Block

Untuk membuat file konfigurasi untuk test.oo.md, jalankan:

sudo nano /etc/nginx/sites-available/test.oo.md

Tentukan blok server Anda di dalam file:

server {
    listen 80;
    server_name test.oo.md www.test.oo.md;

    root /var/www/test.oo.md;
    index index.html index.htm;

    access_log /var/log/nginx/test.oo.md_access.log;
    error_log  /var/log/nginx/test.oo.md_error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

> Direktif kunci dijelaskan:

> – listen 80 — Menginstruksikan NGINX untuk mendengarkan lalu lintas HTTP pada port 80.

> – server_name — Mendefinisikan nama domain mana yang direspons blok ini.

> – root — Menetapkan direktori akar dokumen untuk file situs.

> – try_files — Mencoba melayani file atau direktori yang diminta; mengembalikan 404 jika tidak ditemukan.

2. Aktifkan Situs dengan Membuat Tautan Simbolis

Tidak seperti Apache, NGINX tidak menyediakan perintah bawaan seperti a2ensite. Sebaliknya, Anda secara manual membuat tautan simbolis:

sudo ln -s /etc/nginx/sites-available/test.oo.md /etc/nginx/sites-enabled/

Ini menghubungkan file konfigurasi ke direktori sites-enabled, membuatnya memenuhi syarat untuk dimuat oleh NGINX.

3. Uji Konfigurasi NGINX

Selalu uji konfigurasi NGINX Anda sebelum memuat ulang:

sudo nginx -t

Tes yang berhasil mengembalikan:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika kesalahan dilaporkan, tinjau baris yang ditunjukkan dalam file konfigurasi Anda dan perbaiki sebelum melanjutkan.

4. Muat Ulang NGINX untuk Menerapkan Perubahan

sudo systemctl reload nginx

Seperti halnya Apache, reload dengan anggun menerapkan perubahan konfigurasi tanpa mengganggu koneksi aktif — selalu lebih disukai daripada restart penuh di lingkungan langsung.

5. Nonaktifkan Situs di NGINX

Untuk menonaktifkan situs, hapus tautan simbolisnya dari direktori sites-enabled:

sudo rm /etc/nginx/sites-enabled/test.oo.md

Kemudian muat ulang NGINX untuk menerapkan perubahan:

sudo systemctl reload nginx

File konfigurasi di sites-available dipertahankan dan dapat diaktifkan kembali kapan saja.

Referensi Cepat: Manajemen Situs Apache vs. NGINX

TugasPerintah ApachePerintah NGINX
Buat file konfigurasinano /etc/apache2/sites-available/site.confnano /etc/nginx/sites-available/site
Aktifkan situssudo a2ensite site.confsudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/
Uji konfigurasisudo apachectl configtestsudo nginx -t
Muat ulang web serversudo systemctl reload apache2sudo systemctl reload nginx
Nonaktifkan situssudo a2dissite site.confsudo rm /etc/nginx/sites-enabled/site

Praktik Terbaik untuk Mengelola Situs dengan NGINX dan Apache

1. Satu File Konfigurasi Per Situs

Selalu buat file konfigurasi khusus untuk setiap domain atau subdomain di direktori sites-available. Mencampur beberapa situs ke dalam satu file menciptakan sakit kepala pemeliharaan dan membuat pemecahan masalah jauh lebih sulit.

2. Selalu Uji Sebelum Memuat Ulang

Jadikan kebiasaan yang tidak dapat dinegosiasikan untuk menjalankan apachectl configtest atau nginx -t sebelum setiap muat ulang. Kesalahan sintaks dalam file konfigurasi dapat membawa semua situs di server — bukan hanya yang Anda edit.

3. Gunakan Kontrol Versi untuk File Konfigurasi

Untuk server yang menghosting beberapa situs atau konfigurasi kompleks, lacak file konfigurasi Anda dengan Git:

cd /etc/nginx/sites-available/
git init
git add .
git commit -m "Initial configuration snapshot"

Ini memberi Anda riwayat perubahan lengkap dan kemampuan untuk kembali ke status yang diketahui dengan baik secara instan.

4. Selalu Terapkan HTTPS dengan Sertifikat SSL

Melayani situs melalui HTTP biasa tidak lagi dapat diterima. Konfigurasikan Sertifikat SSL untuk setiap situs yang Anda kelola. Let’s Encrypt menyediakan sertifikat gratis yang dapat diperbaharui secara otomatis dan terintegrasi dengan mulus dengan Apache (melalui mod_ssl dan Certbot) dan NGINX.

Setelah mendapatkan sertifikat, perbarui blok server atau virtual host Anda untuk mendengarkan port 443 dan alihkan semua lalu lintas HTTP ke HTTPS.

5. Konfigurasikan Logging Komprehensif

Selalu tentukan direktif access_log dan error_log untuk setiap situs. Log adalah lini pertahanan Anda saat mendiagnosis masalah, menyelidiki insiden keamanan, atau menganalisis pola lalu lintas. Simpan log dalam file khusus situs daripada mengandalkan log global default.

6. Gunakan Penamaan File yang Deskriptif dan Konsisten

Beri nama file konfigurasi Anda sesuai dengan domain yang mereka layani (misalnya, example.com.conf untuk Apache, example.com untuk NGINX). Ini membuat jelas segera file mana yang sesuai dengan situs mana saat mengelola server dengan banyak virtual host.

Memilih Lingkungan Hosting yang Tepat

Teknik konfigurasi yang dibahas dalam panduan ini berlaku terlepas dari pengaturan hosting Anda, tetapi pilihan lingkungan server Anda secara signifikan mempengaruhi kinerja dan fleksibilitas.

  • Shared Web Hosting — Ideal untuk pemula atau situs kecil di mana konfigurasi server dikelola untuk Anda. NGINX atau Apache sudah dikonfigurasi sebelumnya, dan Anda berinteraksi dengan situs melalui panel kontrol.
  • VPS Hosting — Titik manis bagi pengembang dan administrator sistem yang membutuhkan akses root penuh untuk mengonfigurasi NGINX atau Apache persis seperti yang dijelaskan dalam panduan ini. Anda memiliki kontrol penuh atas sites-available, sites-enabled, dan setiap aspek server lainnya.
  • Dedicated Servers — Terbaik untuk situs web lalu lintas tinggi atau aplikasi yang memerlukan kinerja maksimal dan isolasi. Anda mengelola seluruh server, ter
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai