HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Cara Install Nginx sebagai Reverse Proxy Apache di Linux [Lengkap]

Dalam pengelolaan server Linux, kombinasi Nginx sebagai reverse proxy dan Apache sebagai web server backend merupakan arsitektur yang sangat populer. Nginx dikenal ringan dan cepat dalam menangani koneksi, sementara Apache unggul dalam kompatibilitas modul dan konfigurasi .htaccess. Artikel ini akan membahas secara lengkap dan step-by-step cara menginstal Nginx sebagai reverse proxy Apache di Linux, termasuk konsep dasar, manfaat, konfigurasi, hingga pengujian.

Apa Itu Nginx?

Nginx adalah perangkat lunak open-source yang digunakan sebagai web server, reverse proxy, load balancer, serta HTTP cache. Nginx dirancang untuk menangani koneksi dalam jumlah besar dengan penggunaan sumber daya yang rendah, sehingga sangat efisien untuk website dengan trafik tinggi. Karena performanya yang cepat dan stabil, Nginx sering digunakan sebagai pengganti maupun pendamping Apache untuk meningkatkan kecepatan, keamanan, dan skalabilitas server.

Apa Itu Reverse Proxy?

Reverse proxy adalah server yang berada di depan server utama (backend) dan bertugas menerima request dari client, lalu meneruskannya ke server backend.

Dalam konfigurasi ini: Client → Nginx → Apache → Aplikasi Website

Nginx bertindak sebagai pintu masuk utama, sedangkan Apache menangani pemrosesan aplikasi web.

Mengapa Menggunakan Nginx sebagai Reverse Proxy Apache?

Menggabungkan Nginx dan Apache memberikan banyak keuntungan, di antaranya:

  1. Nginx mampu menangani koneksi simultan dalam jumlah besar
  2. Performa website lebih cepat dan stabil
  3. Apache tetap bisa menggunakan .htaccess
  4. Load server lebih ringan
  5. Mudah dikombinasikan dengan SSL dan caching
  6. Cocok untuk shared hosting maupun VPS

Skema Arsitektur Server

Client
↓
Nginx (Port 80 / 443)
↓
Apache (Port 8080)
↓
Website / Aplikasi

Persiapan Sebelum Instalasi

Pastikan server Linux Anda memenuhi syarat berikut:

  1. OS Linux (Ubuntu/Debian/CentOS/Rocky/AlmaLinux)
  2. Akses root atau sudo
  3. Apache sudah terinstal dan berjalan
  4. Port 80 belum digunakan Apache (akan dipindah)
  5. Firewall mengizinkan port 80 dan 443

Langkah 1: Install Apache Web Server

Ubuntu / Debian 

sudo apt update
sudo apt install apache2 -y

CentOS / Rocky / AlmaLinux

sudo dnf install httpd -y

Aktifkan Apache: sudo systemctl start apache2
sudo systemctl enable apache2
atau sudo systemctl start httpd
sudo systemctl enable httpd

Langkah 2: Ubah Port Apache ke 8080

Apache tidak boleh lagi menggunakan port 80 karena akan digunakan oleh Nginx.

Edit konfigurasi Apache

Ubuntu / Debian: sudo nano /etc/apache2/ports.conf

Ubah: Listen 80 menjadi Listen 8080

Edit virtual host: sudo nano /etc/apache2/sites-available/000-default.conf

Ubah: <VirtualHost *:80> menjadi <VirtualHost *:8080>

Restart Apache: sudo systemctl restart apache2

Cek: http://IP-SERVER:8080

Langkah 3: Install Nginx

Ubuntu / Debian

sudo apt install nginx -y

CentOS / Rocky / AlmaLinux

sudo dnf install nginx -y

Aktifkan Nginx: sudo systemctl start nginx
sudo systemctl enable nginx

Langkah 4: Konfigurasi Nginx sebagai Reverse Proxy

Buat konfigurasi server block

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

Isi konfigurasi berikut:

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

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

Langkah 5: Uji Konfigurasi Nginx

sudo nginx -t

Jika muncul: syntax is ok
test is successful

Restart Nginx: sudo systemctl restart nginx

Langkah 6: Konfigurasi Firewall (Jika Aktif)

UFW (Ubuntu)

sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload

Firewalld (CentOS)

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

Langkah 7: Pengujian Reverse Proxy

  • Akses domain atau IP server di browser
  • Pastikan website tampil normal
  • Pastikan Apache berjalan di port 8080
  • Pastikan Nginx berjalan di port 80

Cek port: ss -tulpn

Menambahkan SSL (Opsional)

Jika ingin HTTPS, SSL sebaiknya dipasang di Nginx, bukan Apache. Contoh dengan Let’s Encrypt:sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx

Error Umum dan Solusinya

1. 502 Bad Gateway

Error 502 Bad Gateway biasanya muncul ketika Nginx tidak dapat terhubung ke server backend, dalam hal ini Apache. Penyebab paling umum adalah Apache dalam kondisi mati atau Apache berjalan pada port yang tidak sesuai dengan konfigurasi reverse proxy di Nginx.

Untuk memastikan Apache berjalan dengan normal, periksa status servicenya menggunakan perintah sudo systemctl status apache2. Jika Apache tidak aktif atau menggunakan port yang berbeda, pastikan service dijalankan dan port yang digunakan sudah sesuai dengan pengaturan pada Nginx.

2. Website Tidak Bisa Diakses

Jika website tidak dapat diakses sama sekali, kemungkinan besar masalah berasal dari firewall yang menutup port 80 atau Nginx belum direstart setelah perubahan konfigurasi. Firewall yang aktif dapat menghalangi request dari luar server, sehingga browser tidak bisa mengakses website.

Pastikan port 80 diizinkan pada firewall, lalu restart Nginx menggunakan perintah sudo systemctl restart nginx agar konfigurasi terbaru dapat diterapkan dengan benar.

3. .htaccess Tidak Berfungsi

Masalah .htaccess yang tidak berfungsi biasanya terjadi karena Apache tidak mengizinkan penggunaan file .htaccess pada direktori tertentu. Agar .htaccess dapat berjalan, Apache harus mengaktifkan opsi AllowOverride.

Pastikan konfigurasi direktori di Apache sudah mengizinkan override dengan menambahkan atau memastikan pengaturan <Directory /var/www/html> AllowOverride All </Directory> sudah diterapkan, kemudian restart Apache agar perubahan konfigurasi berlaku.

Kelebihan dan Kekurangan Konfigurasi Nginx + Apache

1. Kelebihan:

  • Performa lebih tinggi
  • Skalabilitas lebih baik
  • Tetap kompatibel dengan aplikasi lama
  • Lebih aman dan fleksibel
  • Cocok untuk Laravel, WordPress, dan PHP App

2. Kekurangan:

  • Konfigurasi lebih kompleks
  • Perlu pemahaman jaringan dasar
  • Debugging sedikit lebih rumit

Kesimpulan

Menggunakan Nginx sebagai reverse proxy Apache di Linux adalah solusi ideal untuk meningkatkan performa dan stabilitas server tanpa kehilangan fleksibilitas Apache. Dengan konfigurasi yang tepat, arsitektur ini sangat cocok untuk website dengan trafik tinggi maupun aplikasi modern. Bagi administrator server dan developer, setup ini merupakan kombinasi yang powerful dan terbukti andal.

5/5 - (1 vote)
Fitri Ana

Recent Posts

Pengendalian dan Rekonsiliasi Petty Cash yang Tepat

Pengelolaan petty cash atau kas kecil tidak hanya berkaitan dengan pencatatan pengeluaran. Perusahaan juga perlu…

10 hours ago

Rekomendasi Aplikasi Penginapan Murah, Cara Cari Hotel Hemat Tanpa Salah Pilih

Mencari penginapan murah menjadi salah satu hal penting ketika merencanakan perjalanan. Biaya akomodasi dapat mengambil…

11 hours ago

Contoh Pencatatan Petty Cash: Metode Imprest dan Fluktuasi

Pencatatan petty cash perlu disesuaikan dengan metode yang digunakan perusahaan. Dalam sistem imprest, jumlah dana…

13 hours ago

7 Tools AI untuk Pekerja Kantoran yang Bisa Menghemat Waktu Kerja

Pekerjaan kantoran sering kali tidak hanya berkaitan dengan tugas utama. Dalam satu hari, seorang pekerja…

15 hours ago

Apa Itu Function Calling pada AI? Teknologi di Balik AI yang Bisa Bertindak

Perkembangan artificial intelligence (AI) membuat kemampuan model AI tidak lagi terbatas pada menghasilkan teks, menjawab…

17 hours ago

Cara Mengelola Petty Cash atau Kas Kecil dengan Benar

Setelah menentukan metode pengelolaan petty cash, perusahaan perlu memiliki prosedur yang jelas agar dana kas…

1 day ago