restrict access by IP address on nginx in k8s (not nginx ingress)

0
392

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