Cara Mengonfigurasi Nginx sebagai Reverse Proxy di Ubuntu 22.04

Pendahuluan

Nginx adalah server web yang sangat populer dan juga berfungsi sebagai reverse proxy, yang memungkinkan akses aplikasi server ke internet secara lebih aman dan terkontrol. Reverse proxy sering digunakan untuk mengisolasi server aplikasi dari akses langsung ke internet, sehingga memberikan manfaat keamanan, termasuk perlindungan firewall yang terpusat dan pengurangan risiko serangan seperti DDoS. Dalam tutorial ini, kita akan belajar cara mengonfigurasi Nginx sebagai reverse proxy di Ubuntu 22.04, yang berguna untuk menjalankan aplikasi server di lingkungan produksi.

Disclaimer

Pastikan untuk mencadangkan data penting Anda dan mengikuti langkah-langkah ini dengan hati-hati, terutama jika Anda menerapkan konfigurasi pada server yang digunakan untuk produksi. Semua langkah di bawah ini dilakukan pada sistem operasi Ubuntu atau Debian terbaru (Ubuntu 22.04 digunakan sebagai referensi).

Prasyarat

  • Server Ubuntu 22.04 yang sudah dikonfigurasi.
  • Alamat server aplikasi yang ingin Anda proxy (misalnya: http://127.0.0.1:8000 jika menggunakan server uji Gunicorn).
  • Nama domain yang diarahkan ke IP publik server Anda.

Langkah 1 — Menginstal Nginx

Perbarui indeks repositori dan instal Nginx:

sudo apt update
sudo apt install nginx

Izinkan akses Nginx melalui firewall:

sudo ufw allow 'Nginx HTTP'

Periksa status Nginx:

systemctl status nginx

Jika Nginx berjalan dengan baik, Anda akan melihat status active (running).

Langkah 2 — Mengonfigurasi Server Block

Buat file konfigurasi baru untuk server block Nginx:

sudo nano /etc/nginx/sites-available/domain_anda

Tambahkan konfigurasi berikut, ganti domain_anda dengan nama domain Anda dan alamat_server_aplikasi dengan alamat server aplikasi:

server {
    listen 80;
    listen [::]:80;
    
    server_name domain_anda www.domain_anda;
    
    location / {
        proxy_pass alamat_server_aplikasi;
        include proxy_params;
    }
}

Simpan dan tutup file konfigurasi (di nano, tekan CTRL+O, lalu CTRL+X).

Aktifkan konfigurasi dengan membuat symlink ke sites-enabled:

sudo ln -s /etc/nginx/sites-available/domain_anda /etc/nginx/sites-enabled/

Uji konfigurasi Nginx untuk memastikan tidak ada kesalahan sintaks:

sudo nginx -t

Restart Nginx untuk menerapkan perubahan:

sudo systemctl restart nginx

Langkah 3 — Menguji Reverse Proxy dengan Gunicorn (Opsional)

Jika Anda belum memiliki server aplikasi, Anda dapat menggunakan Gunicorn untuk membuat aplikasi uji sederhana.

Instal Gunicorn:

sudo apt update
sudo apt install gunicorn

Buat file aplikasi sederhana:

nano test.py

Tambahkan kode berikut ke dalam file test.py:

def app(environ, start_response):
    start_response("200 OK", [])
    return iter([b"Hello, World!"])

Jalankan server Gunicorn:

gunicorn --workers=2 test:app

Gunicorn akan berjalan di http://127.0.0.1:8000, yang sesuai dengan konfigurasi Nginx sebagai proxy.

Uji akses di browser dengan mengunjungi domain_anda. Jika konfigurasi berhasil, Anda akan melihat pesan “Hello, World!”.

Kesimpulan

Dengan konfigurasi ini, Nginx berfungsi sebagai reverse proxy, mengarahkan permintaan dari klien ke server aplikasi. Anda juga telah menyiapkan pengaturan forward header sehingga informasi dari klien dapat diteruskan dengan aman. Konfigurasi ini memungkinkan server aplikasi yang hanya bisa diakses secara lokal menjadi dapat diakses dari internet secara lebih aman.

Leave a Reply

Your email address will not be published. Required fields are marked *