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

