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.