
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, silakan 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.ymlversion: '3.7' networks: whoami: external: false services: whoami: image: traefik/whoami:latest ports: - '8089:80' deploy: replicas: 4 networks: - whoamiJalankan
docker stack deploy -c whoami.ymlwhoami.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
HostnamedanIPakan selalu berubah-berubah
