Cara Install Apache & Konfigurasi Nginx sebagai Reverse Proxy di AlmaLinux / CentOS

Cara Install Apache & Konfigurasi Nginx sebagai Reverse Proxy di AlmaLinux / CentOS

Pendahuluan

Nginx (dibaca engine-x) adalah web server ringan dan cepat yang dirancang untuk menangani banyak koneksi secara efisien. Selain berfungsi sebagai web server, Nginx juga sering digunakan sebagai reverse proxy, load balancer, dan caching server.

Reverse proxy sendiri adalah server perantara yang menerima permintaan dari pengguna, lalu meneruskannya ke server backend seperti Apache. Dengan peran ini, Nginx membantu meningkatkan performa dan pengelolaan server secara keseluruhan. Nginx mampu menyajikan file statis seperti gambar, CSS, dan JavaScript dengan lebih cepat, sekaligus menyembunyikan detail server backend dari akses langsung pengguna luar. Selain itu, konfigurasi reverse proxy juga memberi fleksibilitas lebih untuk pengaturan load balancing, SSL termination, dan optimasi trafik.

Secara sederhana, Nginx akan menerima semua permintaan dari internet, kemudian meneruskannya ke Apache yang bertugas menjalankan aplikasi PHP atau logika utama website. Dengan pembagian peran ini, masing-masing server dapat bekerja lebih optimal sesuai fungsinya.

Dalam pengelolaan server web modern, pendekatan seperti ini semakin banyak digunakan, terutama saat website mulai ramai diakses. Menempatkan Nginx sebagai reverse proxy di depan Apache terbukti mampu meningkatkan kecepatan akses, mengurangi beban Apache, dan menjaga stabilitas server saat menangani banyak koneksi secara bersamaan.

Pada panduan ini, kita akan menginstal Apache dan Nginx, lalu mengonfigurasi Nginx agar berfungsi sebagai reverse proxy yang meneruskan seluruh permintaan ke Apache. Pembahasan akan dimulai dari proses instalasi hingga pengujian, khusus untuk server berbasis AlmaLinux 8, Almalinux 9, CentOS 8 atau CentOS 9.

Persiapan Server

Sebelum memulai, pastikan:

  • Server dengan OS AlmaLinux 8, Almalinux 9, CentOS 8 atau CentOS 9
  • Akses root atau user dengan hak sudo
  • Server sudah terkoneksi ke internet

Disarankan menggunakan Cloud VPS agar konfigurasi server lebih fleksibel dan bisa di-upgrade sesuai kebutuhan. Cloud VPS dari Plasawebhost mendukung penuh setup seperti ini dan cocok untuk kebutuhan website skala kecil hingga besar.

Install Apache

Langkah pertama adalah menginstal Apache (httpd) sebagai web server backend.

sudo dnf update -y
sudo dnf install httpd -y

Aktifkan dan jalankan Apache:

sudo systemctl enable httpd
sudo systemctl start httpd

Pastikan Apache berjalan dengan baik:

sudo systemctl status httpd

Jika statusnya active (running), berarti Apache sudah siap digunakan.

Ganti Port Apache agar Tidak Bentrok dengan Nginx

Secara default, Apache menggunakan port 80. Karena nantinya port 80 akan digunakan oleh Nginx, maka Apache perlu dipindahkan ke port lain, misalnya 8080.

Edit konfigurasi apache:

sudo vi /etc/httpd/conf/httpd.conf

Cari baris Listen 80 , ganti menjadi

Listen 8080

Lalu restart apache

sudo systemctl restart httpd

Dengan begitu, Apache hanya akan menerima request dari Nginx, bukan langsung dari pengunjung.

Install Nginx di AlmaLinux / CentOS

Pada AlmaLinux dan CentOS, Nginx tersedia melalui repository EPEL.

sudo dnf install epel-release -y
sudo dnf install nginx -y

Aktifkan dan jalankan Nginx:

sudo systemctl enable nginx
sudo systemctl start nginx

Cek status Nginx:

sudo systemctl status nginx

Konfigurasi Nginx Reverse Proxy

Selanjutnya kita akan mengatur Nginx agar meneruskan request ke Apache yang berjalan di port 8080.

Edit file konfigurasi Nginx default atau buat konfigurasi virtual host baru:

sudo vi /etc/nginx/conf.d/reverse-proxy.conf

konfigurasikan nginx untuk meneruskan permintaan ke apache dengan mengubah filenya pada bagian "server" seperti ini:

server {
    listen 80;
    server_name domain_anda.com;

    # Konten statis langsung dilayani Nginx
    location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
        root /var/www/html;
        expires 30d;
        access_log off;
    }

    # Forward request lain ke Apache backend
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 60s;
        proxy_read_timeout 120s;
    }
}

Penjelasan:
proxy_set_header: memastikan header klien tidak hilang saat diteruskan ke backend. belajarlinux.id
Menambahkan timeout bawaan untuk koneksi bisa membantu stabilitas pada trafik tinggi.

Ganti domainanda.com dengan domain atau IP server Anda. Konfigurasi ini memastikan seluruh request yang masuk ke Nginx akan diteruskan ke Apache secara aman dan konsisten.

Konfigurasi Firewall (Jika Aktif)

Jika server menggunakan firewalld, pastikan port HTTP dan HTTPS terbuka:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Tanpa langkah ini, website tidak akan bisa diakses dari luar server.

Uji Coba dan Restart Nginx

Uji coba konfigurasi dan restart Nginx
Sebelum anda melakukan Restart pastikan anda melakukan uji coba terlebih dahulu dengan menggunakan command line berikut:

sudo nginx -t

Jika tidak ada error maka tampilan akan terlihat seperti gambar


Jika tidak ada error lakukan restart pada Ngix

sudo systemctl restart nginx

 

Uji coba dengan Script PHP 

  1. Install PHP
    Install PHP dan berikan akses untuk Apache, gunakan command line berikut:
    sudo dnf install php php-fpm -y
    sudo systemctl restart httpd
  2. File document root 
    Buat file untuk uji coba php di dalam folder root apache, gunakan command line berikut:
    sudo vim /var/www/html/test.php

    Isi file seperti berikut:

     

  3. Simpan dan Sekarang coba akses domain menggunakan browser anda 

    http://domain_anda.com/test.php

    Jika semuanya sudah benar maka akan tampil halaman dari PHP

     

Install SSL Let’s Encrypt (Optional)

Untuk penggunaan produksi, sangat disarankan menggunakan HTTPS.

Install Certbot:

sudo dnf install certbot python3-certbot-nginx -y

Lalu jalankan:

sudo certbot --nginx -d domainanda.com

Certbot akan mengatur SSL secara otomatis dan membuat website Anda lebih aman serta dipercaya oleh browser.

Kesimpulan

Menggunakan Nginx sebagai reverse proxy di depan Apache adalah solusi yang efektif untuk meningkatkan performa, stabilitas, dan keamanan server web. Arsitektur ini sangat cocok untuk website dinamis dan aplikasi berbasis PHP yang membutuhkan respon cepat dan koneksi stabil.

Dengan server yang tepat seperti Cloud VPS Plasawebhost, konfigurasi ini bisa dijalankan dengan lebih optimal, mudah di-upgrade, dan siap mendukung pertumbuhan website Anda ke depannya.

Jika Anda berencana menjalankan website sekolah, kampus, bisnis, atau aplikasi web dengan trafik tinggi, kombinasi Nginx dan Apache di Cloud VPS adalah pilihan yang sangat layak dipertimbangkan.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466