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.confDi 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.confPerintah 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.confSitus 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 configtestOutput yang berhasil akan menunjukkan:
Syntax OKJika ada kesalahan, Apache akan menjelaskan masalahnya dan nomor baris — perbaiki ini sebelum melanjutkan.
4. Muat Ulang Apache untuk Menerapkan Perubahan
sudo systemctl reload apache2Menggunakan 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.confIni menghapus tautan simbolis dari sites-enabled. File konfigurasi di sites-available tetap tidak tersentuh. Muat ulang Apache untuk menerapkan:
sudo systemctl reload apache2Mengelola 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.mdTentukan 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 -tTes yang berhasil mengembalikan:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulJika kesalahan dilaporkan, tinjau baris yang ditunjukkan dalam file konfigurasi Anda dan perbaiki sebelum melanjutkan.
4. Muat Ulang NGINX untuk Menerapkan Perubahan
sudo systemctl reload nginxSeperti 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.mdKemudian muat ulang NGINX untuk menerapkan perubahan:
sudo systemctl reload nginxFile konfigurasi di sites-available dipertahankan dan dapat diaktifkan kembali kapan saja.
Referensi Cepat: Manajemen Situs Apache vs. NGINX
| Tugas | Perintah Apache | Perintah NGINX |
|---|---|---|
| Buat file konfigurasi | nano /etc/apache2/sites-available/site.conf | nano /etc/nginx/sites-available/site |
| Aktifkan situs | sudo a2ensite site.conf | sudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/ |
| Uji konfigurasi | sudo apachectl configtest | sudo nginx -t |
| Muat ulang web server | sudo systemctl reload apache2 | sudo systemctl reload nginx |
| Nonaktifkan situs | sudo a2dissite site.conf | sudo 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
