# Panduan Port Forwarding dengan NGINX di Ubuntu

Pada tulisan ini kita akan belajar bagaimana melakukan *port forwarding* menggunkan NGINX di ubuntu.

### Apa kegunaan dari *port forwarding (reverse proxy)* ini?

*Port forwarding* ini biasanya digunakan ketika kita memiliki beberapa aplikasi yang *running* pada *port* tertentu di sebuah server dan ketika ada *traffic* yang masuk pada *server*, kita ingin mengarahkan *request* tersebut ke aplikasi tertentu berdasarkan nama *domain* nya.

**Ilustrasi *port forwarding***

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1721313340016/0425bf57-e679-453d-b889-97e4c2dae26b.jpeg align="center")

### Berikut langkah-langkan yang harus kita lakukan:

#### 1\. Install NGINX

Langkah pertama yang harus kita lakukan adalah menginstall NGINX terlebih dahulu. Untuk menginstall NGINX di ubuntu bisa jalankan command berikut:

```bash
sudo apt update
```

```bash
sudo apt install nginx
```

> **Note:** Beberapa command nginx
> 
> ```bash
> sudo systemctl stop nginx.service
> ```
> 
> ```bash
> sudo systemctl start nginx.service
> ```
> 
> ```bash
> sudo systemctl enable nginx.service
> ```

#### 2\. Konfigurasi NGINX

Selanjutnya kita akan membuat file konfigurasi, untuk membuat file konfigurasi nginx. Silahkan jalankan command berikut untuk membuat file konfigurasi:

```bash
sudo vim /etc/nginx/sites-available/api.example.com
```

> **Note**: untuk nama file konfigurasi bebas, bisa di sesuaikan dengan kebutuhan.

**Berikut contoh konfigurasi nya:**

```nginx
server {
    listen 80; 
    server_name NAMA_DOMAIN.COM; 
    location / { 
        proxy_pass http://127.0.0.1:PORT; 
        proxy_http_version 1.1; 
        proxy_set_header Upgrade $http_upgrade; 
        proxy_set_header Connection 'upgrade'; 
        proxy_set_header Host $host; 
        proxy_cache_bypass $http_upgrade; 
    }
}
```

> **Note**: Silahkan ganti `NAMA_DOMAIN.COM` dan `PORT` sesuai dengan konfigurasi yang mau dibuat.

#### 3\. Enable Konfigurasi

Setelah membuat konfigurasi, selanjutnya yang harus dilakukan adalah *enable* konfigurasi tersebut dengan menjalankan *command* berikut:

```bash
sudo ln -s /etc/nginx/sites-available/api.example.com /etc/nginx/sites-enabled/
```

#### 4\. Restart NGINX

Selanjutnya restart NGINX dengan menjalankan cammand berikut:

```bash
sudo systemctl restart nginx.service
```

#### 5\. Sambungkan domain ke server Kita

Langkah terakhir yang harus kita lakukan adalah mengarahkan alamat domain ke IP public server kita.

Selamat mencoba! 👏
