Mungkin kalian memiliki suatu server yang isinya terdapat banyak sekali aplikasi, namun hanya memiliki satu alamat ip seperti tkjpedia ini. Tiap aplikasi akan diakses melalui alamat domain, bukan ip dan tentunya port 443 yang aman (HTTPS). Atau temen temen sudah melakukan setup nginx reverse proxy untuk aplikasi yang lain dan ketika setup nginx reverse proxy untuk jenkins ternyata terdapat notifikasi bahwa error seperti gambar berikut.

Pada jenkins, ada beberapa rule tambahan agar reverse proxy berjalan dengan baik.

Untuk konfigurasi nginx, kalian bisa cek pada wiki nya langsung, https://wiki.jenkins.io/JENKINS/Running-Jenkins-behind-Nginx.html atau lihat kode berikut

upstream jenkins {
  keepalive 32; # keepalive connections
  server 127.0.0.1:8080; # jenkins ip and port
}
 
server {
  listen          80;       # Listen on port 80 for IPv4 requests

  server_name     jenkins.example.com;

  #this is the jenkins web root directory (mentioned in the /etc/default/jenkins file)
  root            /var/run/jenkins/war/;

  access_log      /var/log/nginx/jenkins/access.log;
  error_log       /var/log/nginx/jenkins/error.log;
  ignore_invalid_headers off; #pass through headers from Jenkins which are considered invalid by Nginx server.

  location ~ "^/static/[0-9a-fA-F]{8}\/(.*)$" {
    #rewrite all static files into requests to the root
    #E.g /static/12345678/css/something.css will become /css/something.css
    rewrite "^/static/[0-9a-fA-F]{8}\/(.*)" /$1 last;
  }

  location /userContent {
    #have nginx handle all the static requests to the userContent folder files
    #note : This is the $JENKINS_HOME dir
	root /var/lib/jenkins/;
    if (!-f $request_filename){
      #this file does not exist, might be a directory or a /**view** url
      rewrite (.*) /$1 last;
	  break;
    }
	sendfile on;
  }

  location / {
      sendfile off;
      proxy_pass         http://jenkins;
      proxy_redirect     default;
      proxy_http_version 1.1;

      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;
      proxy_max_temp_file_size 0;

      #this is the maximum upload size
      client_max_body_size       10m;
      client_body_buffer_size    128k;

      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;
      proxy_buffering            off;
      proxy_request_buffering    off; # Required for HTTP CLI commands in Jenkins > 2.54
      proxy_set_header Connection ""; # Clear for keepalive
  }

}

tkjpedia berasumsi bahwa jenkins kalian berjalan di port 8080 default, jika sudah ganti port maka bisa disesuaikan lagi. Buat file konfigurasi tersebut di sites-available & di link kan ke sites-enabled atau di conf.d pada /etc/nginx/

Jika sudah, maka selanjutnya pastikan konfigurasi nginx benar dengan perintah nginx -t dan reload nginx.

Untuk setup SSL nya kalian tinggal ikuti langkah langkah pada artikel berikut

Kemudian kita perlu menyesuaikan url jenkins pada konfigurasi Dashboard –> Configure System

Tadaaaaa jenkins kalian sudah bisa diakses melalui nginx reverse proxy dan HTTPS nya aktif.