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.
Hello,
apakah nginx tersebut running via docker? Atau terpisah, misal nginx proxy reverse running di wsl dan jenkin running via docker. terimakasih
nginx nya langsung di vm kak, tidak didalam docker