Menggabungkan Reverse Proxy Nginx, SSL dari Cloudflare, dan sistem Ubuntu 24.04 LTS adalah solusi handal untuk mengamankan dan mengoptimalkan distribusi lalu lintas aplikasi web.
Artikel ini akan memandu langkah demi langkah menyiapkan Reverse Proxy menggunakan Nginx, mengaktifkan SSL penuh (Full/Strict) melalui Cloudflare, serta memastikan server backend tetap aman.

Perbarui Sistem
Jalankan perintah dibawah untuk memperbarui repository dan upgrade package terbaru.
sudo apt update -y && sudo apt upgrade -y
Install Nginx
Install web server nginx dengan menjalankan perintah dibawah.
sudo apt install nginx -y
Management Service Nginx
Nginx akan otomatis berjalan setelah instalasi selesai. Kamu dapat mengelolanya dengan perintah systemctl:
- Menjalankan service nginx saat sistem operasi direstart.
sudo systemctl enable nginx
- Menjalankan service nginx.
sudo systemctl start nginx
- Menghentikan atau mematikan service nginx.
sudo systemctl stop nginx
- Melihat status service nginx.
sudo systemctl status nginx
SSL Nginx
Generate dhparam
dhparam berfungsi untuk menghasilkan dan mengatur parameter Diffie-Hellman (DH).
Parameter ini sangat penting dalam enkripsi TLS/SSL untuk mengaktifkan Perfect Forward Secrecy (PFS), yang memastikan kunci enkripsi unik untuk setiap sesi sehingga komunikasi web server dan klien tetap aman.
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
Membuat file options-ssl-nginx
Isi file ini kumpulan parameter dan standar keamanan SSL/TLS.
File ini berfungsi untuk memastikan enkripsi HTTPS pada web server NGINX berjalan dengan aman, cepat, dan mematuhi standar industri modern.
sudo nano /etc/ssl/options-ssl-nginx.conf
Masukkan konfigurasi berikut.
ssl_session_cache shared:nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSAAES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHERSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHERSA-AES128-SHA"; ssl_dhparam /etc/ssl/dhparam.pem;
Membuat server block domain
sudo nano /etc/nginx/sites-available/DOMAIN-KAMU.conf
Masukan konfigurasi dibawah.
server {
listen 443 ssl;
server_name DOMAIN-KAMU www.DOMAIN-KAMU;
ssl_certificate /etc/ssl/DOMAIN-KAMU/DOMAIN-KAMU-cert.pem;
ssl_certificate_key /etc/ssl/DOMAIN-KAMU/DOMAIN-KAMU-key.pem;
include /etc/ssl/options-ssl-nginx.conf;
location / {
proxy_pass http://127.0.0.1:PORT-NUMBER-APLIKASI-KAMU;
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;
}
access_log /var/log/nginx/DOMAIN-KAMU_access.log;
error_log /var/log/nginx/DOMAIN-KAMU_error.log;
}
server {
listen 80;
server_name DOMAIN-KAMU www.DOMAIN-KAMU;
return 301 https://$host$request_uri;
}
Membuat symbolic link konfigurasi server blok reverse proxy ke direktori sites-enabled.
sudo ln -s /etc/nginx/sites-available/DOMAIN-KAMU.conf /etc/nginx/sites-enabled/
SSL Cloudflare
Pastikan domain yang kamu sewa sudah menggunakan nameserver dari cloudflare, sudah membuat dns record A (domain ke IP_Public Server) dan CNAME (www ke domain) dengan Proxy Status (Proxied).
Membuat direktori untuk menyimpan file SSL di server.
sudo mkdir /etc/ssl/DOMAIN-KAMU
Masuk menu SSL/TLS -> Origin Server -> +Create Certificate akan muncul domain kamu, Private key type RSA (2048) dan Certificate Validity 1 years. Akan muncul Origin Certificate dan Private Key.
Salin private key lalu, pada server membuat file untuk menyimpan Private Key Cloudflare, lalu paste key
sudo nano /etc/ssl/DOMAIN-KAMU/DOMAIN-KAMU-key.pem
Lalu membuat file dengan nano, paste Origin Certificate.
sudo nano /etc/ssl/DOMAIN-KAMU/DOMAIN-KAMU-cert.pem
Tahap selanjutnya mengaktifkan SSL/TLS encryption. Masuk menu SSL/TLS -> Overview ubah Current encryption mode menjadi Full (strict).
Restart service nginx untuk memperbarui perubahan konfigurasi.
sudo systemctl restart nginx
Akses domain kamu yang sudah ada service yang berjalan yang berdasarkan port number.
Firewall UFW Allow (http, https, dan ssh)
UFW (Uncomplicated Firewall) bawaan untuk mengelola sistem keamanan jaringan di Ubuntu 24.04 .
Fungsi utamanya adalah menyaring lalu lintas data dan memblokir atau mengizinkan koneksi jaringan berdasarkan aturan tertentu untuk melindungi komputer atau server dari akses tidak sah.
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443
Keterangan:
- Default ssh berjalan di port number 22, jika sudah bukan default tinggal ganti 22 dengan port settingan pada service ssh server.
- Port 80 default untuk protokol HTTP (Hypertext Transfer Protocol). Port ini memungkinkan browser web kamu berkomunikasi dengan server guna meminta dan menampilkan halaman situs web.
- 443 standar yang digunakan untuk lalu lintas HTTPS (HyperText Transfer Protocol Secure).
Secara default UFW belum aktif, untuk mengatifkan jalankan perintah dibawah.
sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Melihat status firewall UFW, saat menjalankan perintah dibawah pastikan Status: Active dan port 22, 80, 443 allow.
sudo ufw status
Hardening Security Nginx
Hidden Version Nginx
Hilangkan versi nginx (Konfigurasi untuk seluruh block nginx).
sudo nano /etc/nginx/nginx.conf
Tambahkan script didalam block http { … } dibagian paling bawah.
## # Hidden Version Nginx ## server_tokens off;
Check dan Update Configuration Nginx
Cek konfigurasi Nginx
sudo nginx -t
Output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload service nginx
sudo systemctl reload nginx
Jika kamu memiliki aplikasi lebih dari satu, akses mengunakan protocol http (80) atau https (443), cukup membedakan:
- Nama konfigurasi server block nginx (DOMAIN-KAMU.conf)
- Port number aplikasi di reverse proxy (proxy_pass http://127.0.0.1:PORT-NUMBER-APLIKASI-KAMU;)
- Domain (DOMAIN-KAMU)
- Certificate Origin dan Private Key, pada cloudflare berdasarkan domain.
Kesimpulan
Dengan mengikuti panduan di atas, kamu telah berhasil membangun Reverse Proxy Nginx + SSL Cloudflare di Ubuntu 24.04 LTS. Arsitektur ini memberikan:
- Enkripsi end-to-end antara client → Cloudflare → server.
- Kinerja tinggi dengan caching dan load balancing dari Cloudflare.
- Keamanan tambahan dengan menyembunyikan IP asli server backend.
Kamu kini dapat menggunakannya untuk berbagai aplikasi.

