April 15, 2019

Fix the Cockpit Blank Page After Login Over Nginx Reverse Proxy

Cockpit nge-Blank Setelah Login Jika diakses melalui Reverse Proxy Nginx?

Apakah anda mengalami hal tersebut? Jangan takut, karena saya juga mengalami hal tersebut 😆 Beberapa yang hari lalu, saya mengakses cockpit server lab saya yang melalui reverse proxy NGINX, awalnya normal aja pas ngakses sampai ke halaman login namun ketika mencoba login, si cockpit hanya stuck di blank page. Wahhhh alhamdulillah dapat masalah baru lagi :D padahal sebelumnya normal aja, gak ada stuck di blank page. Selang beberapa menit setelah nyelam di website resmi cockpit, masalah tersebut terselesaikan dengan beberapa config tambahan berikut ini:

1) Buat sebuah file konfigurasi cockpit di direktori cockpit menggunakan command vi /etc/cockpit/cockpit.conf kemudian tambahkan script berikut:

[WebService]
AllowUnencrypted=true

2) Update konfigurasi reverse proxy seperti berikut:

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

upstream websocket {
server 10.10.1.1:9090;
}


server {
    server_name cockpit.sibunglon.com;

    location / {
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        # needed for websocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        # change scheme of "Origin" to http
        proxy_set_header Origin http://$host;

        # Pass ETag header from cockpit to clients.
        # See: https://github.com/cockpit-project/cockpit/issues/5239
        gzip off;
    }

}

Catatan:

  • Untuk cockpit.sibunglon.com silahkan diganti sesuai domain kalian.
  • Untuk ip server 10.10.1.1 silahkan diganti sesuai ip server kalian, jika nginx dan cockpit berada pada 1 server silahkan ganti ip 10.10.1.1 ke localhost.

3) Verifikasi konfigurasi nginx menggunakan command sudo nginx -t, pastikan tidak ada yang error.

4) Jika tidak ditemukan error pada verifikasi konfigurasi, silahkan restart nginx kalian menggunakan command sudo systemctl restart nginx. Namun jika ada error, periksa kembali konfigurasi yang kalian masukkan.

Sampai tahap ini, cockpit sudah tidak blank page lagi setelah melewati proses login.