Reserve Proxy menggunakan Nginx

Brikut tutorial membuat reserve proxy menggunakan Ubuntu dan Nginx yang sudah saya pernah coba, sebagai gambaran sederhananya saya buatkan topologi sebagai berikut dan untuk implementasinya dapat disesuaikan ; 

Topologi
```
+---------------+
| Client |
+---------------+
       |
       |
       v
+---------------+
| Nginx |
| (Reverse |
| Proxy) |
+---------------+
       |
       |
       v
+---------------+
| Server |
| (Backend) |
+---------------+
```

Dalam topologi di atas, Client mengakses Server Backend melalui Nginx yang berfungsi sebagai Reverse Proxy.

Langkah 1: Instalasi Nginx
1. Buka terminal dan jalankan perintah berikut untuk menginstal Nginx:
```
sudo apt-get update
sudo apt-get install nginx
```
2. Setelah instalasi selesai, jalankan perintah berikut untuk memulai Nginx:
```
sudo service nginx start
```
3. Untuk memastikan Nginx berjalan dengan baik, jalankan perintah berikut:
```
sudo service nginx status
```
Jika Nginx berjalan dengan baik, Anda akan melihat pesan "nginx is running".

Langkah 2: Konfigurasi Nginx sebagai Reverse Proxy
1. Buka file konfigurasi Nginx dengan menggunakan editor teks favorit Anda, misalnya nano:
```
sudo nano /etc/nginx/nginx.conf
```
2. Tambahkan konfigurasi berikut untuk membuat Nginx sebagai reverse proxy:
```
http {
    ...
    upstream backend {
        server localhost:8080;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}
```
Konfigurasi di atas akan membuat Nginx mendengarkan pada port 80 dan meneruskan permintaan ke server backend yang berjalan pada port 8080.

3. Simpan dan tutup file konfigurasi Nginx.

Langkah 3: Restart Nginx
1. Jalankan perintah berikut untuk merestart Nginx:
```
sudo service nginx restart
```
2. Setelah Nginx di-restart, jalankan perintah berikut untuk memastikan Nginx berjalan dengan baik:
```
sudo service nginx status
```
Jika Nginx berjalan dengan baik, Anda akan melihat pesan "nginx is running".

Langkah 4: Uji Coba Reverse Proxy
1. Buka browser dan akses alamat IP atau nama domain server Anda.
2. Jika reverse proxy berjalan dengan baik, Anda akan melihat halaman web yang di-host oleh server backend.

Langkah 5: Konfigurasi SSL/TLS (Opsional)
1. Jika Anda ingin mengaktifkan SSL/TLS pada reverse proxy, Anda perlu menginstal sertifikat SSL/TLS pada server Nginx.
2. Anda dapat membeli sertifikat SSL/TLS dari penyedia sertifikat yang terpercaya atau membuat sertifikat SSL/TLS sendiri menggunakan tool seperti OpenSSL.
3. Setelah Anda memiliki sertifikat SSL/TLS, Anda dapat mengkonfigurasi Nginx untuk menggunakan sertifikat tersebut.

Langkah 6: Uji Coba SSL/TLS (Opsional)
1. Jika Anda telah mengkonfigurasi SSL/TLS pada reverse proxy, Anda dapat menguji coba SSL/TLS dengan mengakses alamat IP atau nama domain server Anda menggunakan protokol HTTPS.
2. Jika SSL/TLS berjalan dengan baik, Anda akan melihat halaman web yang di-host oleh server backend dengan koneksi yang aman.

Demikian tutorial singkatnya semoga bermanfaat. 

Regards