halo sobat sekolahlinux, kali ini saya akan sedikit memberikan tips dan trick bagaimana cara menggunakan restrict access by IP di nginx web server yang di deploy didalam k8s, ada beberapa hal yang perlu kamu lakukan.
pertama tentunya service k8s type nya harus LoadBalancer lalu juga tambahkan externalTrafficPolicy: Local kurang lebih nantinya manifest servicenya akan seperti dibawah ini
apiVersion: v1 kind: Service metadata: name: nginx-generic-service namespace: nginx-ingress labels: app: nginx-generic spec: type: LoadBalancer externalTrafficPolicy: Local ports: - name: http port: 80 targetPort: 80 - name: https port: 443 targetPort: 443 selector: app: nginx-generic
- externalTrafficPolicy: Local : sendiri berguna untuk memforward real client ip agar tidak tereplace oleh ip node worker k8s
lalu selanjutnya pada .conf nginx server saya membuatnya menjadi seperti dibawah ini
server { listen 80; listen 443 ssl; server_name sekolahlinux.com; ssl_certificate /etc/nginx/ssl/sekolahlinux.ca-bundle; ssl_certificate_key /etc/nginx/ssl/sekolahlinux.key; location / { allow 115.4.101.7; # public nat ip client x allow 32.81.31.130; # public nat ip vpn deny all; proxy_pass http://backend-sekolahlinux.production-2020:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; real_ip_header X-Forwarded-For; real_ip_recursive on; } }
sekian tutorial sederhana kali ini semoga bermanfaat