
Halo, kalau kamu merasa tulisan saya ngebantu, kamu bisa ucapkan terima kasih lewat saweria .
If you feel this website help you, you can donate at saweria .
Sebelum mengikuti tutorial ini, silahkan kunjungi tutorial Belajar Docker Swarm // Part 1 - Deploy Service Pertama di Swarm
Di tutorial sebelumnya saya menggunakan traefik sebagai web server/reverse proxy, tapi di sini saya menggunakan nginx (non docker) sebagai load balancer/reverse proxy.
Selain pake nginx, kamu bisa pake layanan load balancer dari cloud provider, tapi saya pilih menggunkaan nginx karena lebih configurable dan lebih murah…
Tools yang Digunakan
-
2 Server Ubuntu 22.04.2 LTS
a. 1 sebagai docker swarm manager
b. 1 sebagai load balancer/reverse proxy menggunakan nginx
-
Nginx v1.22.1
How To
-
Masuk ke server docker swarm manager, buat 1 file compose,
whoami.yml
version: '3.7' networks: whoami: external: false services: whoami: image: traefik/whoami:latest ports: - '8089:80' deploy: replicas: 4 networks: - whoami
-
Jalankan
docker stack deploy -c whoami.yml
whoami.yml,a. Test menggunakan curl,
curl ip-private:8089
Test Pake Curl
b. Check service dengan
docker service ps whoami_whoami
Check Service
-
Masuk ke server nginx, buat 1 file virtual block
upstream whoami { server 10.104.0.9:8089; } server { server_name domainkamu.com; server_tokens off; location / { limit_req zone=download_limit burst=10 nodelay; #prevent search engine indexing add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive"; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_pass http://whoami; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/domainkamu.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/domainkamu.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = domainkamu.com) { return 301 https://$host$request_uri; } # managed by Certbot server_name domainkamu.com; listen 80; return 404; # managed by Certbot return 301 https://$host$request_uri; }
Test di browser, perhatikan bagian
Hostname
danIP
akan selalu berubah-berubah