UI vs. UX: What’s the difference?

Konfigurasi Dasar Web Server (Apache, Nginx)

Dalam dunia web hosting dan pengembangan web, web server adalah komponen inti yang bertugas menyajikan konten dari situs web kepada pengguna melalui protokol HTTP atau HTTPS. Dua web server paling populer di dunia adalah Apache HTTP Server dan Nginx (Engine-X). Keduanya bersifat open source dan dapat dijalankan di berbagai sistem operasi, terutama Linux.

Artikel ini akan membahas secara mendetail langkah-langkah konfigurasi dasar Apache dan Nginx, mulai dari instalasi, pengaturan virtual host, integrasi PHP, hingga penerapan SSL menggunakan Let’s Encrypt.

Apa Itu Apache dan Nginx?

Apache dan Nginx adalah perangkat lunak server web yang berfungsi melayani permintaan pengguna (client) dari browser ke server. Berikut perbedaan singkat keduanya:

FiturApacheNginx
ArsitekturProcess-basedEvent-driven
KeunggulanMendukung .htaccess, modular, mudah dikonfigurasiCepat, ringan, efisien untuk koneksi besar
Umum digunakanHosting tradisional (PHP, CMS)Reverse proxy, microservice, web modern

Prasyarat

Sebelum memulai konfigurasi, pastikan Anda memiliki:

  • Server Linux (Ubuntu/Debian atau CentOS/RHEL)
  • Akses root atau pengguna sudo
  • Domain aktif (opsional, tapi disarankan)
  • Port 80 (HTTP) dan 443 (HTTPS) terbuka

Bagian 1 — Instalasi Apache

1. Instalasi Apache di Ubuntu/Debian

sudo apt update
sudo apt install -y apache2

2. Instalasi Apache di CentOS/RHEL

sudo dnf install -y httpd
sudo systemctl enable --now httpd

3. Mengecek Status

sudo systemctl status apache2   # Debian/Ubuntu
sudo systemctl status httpd     # CentOS/RHEL

Jika halaman default Apache muncul di browser (http://IP-server), maka instalasi berhasil.

Bagian 2 — Konfigurasi Virtual Host Apache

Virtual Host memungkinkan satu server melayani banyak situs web.

1.Buat direktori untuk situs Anda:

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com

2.Buat file konfigurasi baru:

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

Isi dengan:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined

    <Directory /var/www/example.com/public_html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

3.Aktifkan situs dan modul rewrite:

sudo a2ensite example.com.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Sekarang, situs dapat diakses melalui domain Anda.

Bagian 3 — Integrasi PHP dengan Apache

Untuk menjalankan aplikasi PHP seperti WordPress atau Laravel, Anda perlu menambahkan PHP-FPM.

Instalasi PHP-FPM:

sudo apt install -y php php-fpm php-mysql

Konfigurasi Apache:

Tambahkan konfigurasi berikut pada file VirtualHost:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>

Pastikan versi PHP dan path socket sesuai.

Bagian 4 — Instalasi dan Konfigurasi Nginx

1. Instalasi

Ubuntu/Debian:

sudo apt install -y nginx

CentOS/RHEL:

sudo dnf install -y nginx
sudo systemctl enable --now nginx

Akses http://IP-server untuk memastikan Nginx aktif.

Bagian 5 — Konfigurasi Server Block Nginx

Server Block di Nginx setara dengan Virtual Host di Apache.

1.Buat direktori situs:

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com

2.Buat konfigurasi server block:

sudo nano /etc/nginx/sites-available/example.com

Isi dengan:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/public_html;
    index index.php index.html;

    access_log /var/log/nginx/example_access.log;
    error_log /var/log/nginx/example_error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

3.Aktifkan situs dan reload Nginx:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Bagian 6 — Menambahkan SSL Let’s Encrypt

Gunakan Certbot untuk mendapatkan sertifikat SSL gratis.

Apache:

sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

Nginx:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Sertifikat otomatis diperbarui oleh Certbot menggunakan cron.

Bagian 7 — Tuning dan Keamanan Dasar

Apache:

  • Matikan signature:
ServerSignature Off
ServerTokens Prod
  • Gunakan MPM event untuk performa tinggi.

Nginx:

  • Tambahkan di nginx.conf:
server_tokens off;
worker_processes auto;
  • Aktifkan GZIP:
gzip on;
gzip_types text/plain text/css application/json application/javascript;

Umum:

  • Aktifkan firewall (ufw allow 'Nginx Full' atau firewall-cmd --add-service=http)
  • Selalu perbarui paket (sudo apt update && sudo apt upgrade)
  • Backup konfigurasi /etc/nginx/ dan /etc/apache2/

Kesimpulan

Baik Apache maupun Nginx memiliki keunggulan masing-masing. Apache lebih fleksibel untuk situs berbasis PHP dan CMS seperti WordPress, sedangkan Nginx unggul untuk performa tinggi, reverse proxy, dan load balancing.

Dengan mengikuti langkah-langkah di atas, Anda sudah memiliki web server dasar yang siap online, lengkap dengan dukungan PHP dan SSL.