diff --git a/ansible/roles/stack-proxy/defaults/main.yml b/ansible/roles/stack-proxy/defaults/main.yml
index 100e108c695dc843fdc1f531eff229a826a1aeb3..0ae31363be77f3393c7285701bfbd2bf7edd406f 100644
--- a/ansible/roles/stack-proxy/defaults/main.yml
+++ b/ansible/roles/stack-proxy/defaults/main.yml
@@ -4,6 +4,7 @@ hub_org: sunbird
 proxy_replicas: 1
 proxy_reservation_memory: 32M
 proxy_limit_memory: 64M
+nginx_per_ip_connection_limit: 400
 
 proxy_prometheus: false
 
diff --git a/ansible/roles/stack-proxy/templates/nginx.conf b/ansible/roles/stack-proxy/templates/nginx.conf
index 3b23cbf904a43c3e587ed2b8312368a3bc5bc29a..566be10a09d34e0c9f3631f6df4ea96464d563cb 100644
--- a/ansible/roles/stack-proxy/templates/nginx.conf
+++ b/ansible/roles/stack-proxy/templates/nginx.conf
@@ -5,7 +5,7 @@ error_log  /var/log/nginx/error.log warn;
 pid        /var/run/nginx.pid;
 
 events {
-    worker_connections  2048;
+    worker_connections  10000;
 }
 
 
diff --git a/ansible/roles/stack-proxy/templates/proxy-default.conf b/ansible/roles/stack-proxy/templates/proxy-default.conf
index d462b95b990080bd1874289cd899f6903d3c14bc..586b0a4433376b88df1098674a1b173652a1ecaf 100644
--- a/ansible/roles/stack-proxy/templates/proxy-default.conf
+++ b/ansible/roles/stack-proxy/templates/proxy-default.conf
@@ -3,6 +3,8 @@ server {
   listen 80;
   listen [::]:80;
   server_name {{ proxy_server_name }};
+  # Limitting open connection per ip
+  limit_conn limitbyaddr {{ nginx_per_ip_connection_limit }};
 
   return 301 https://{{ proxy_server_name }}$request_uri;
 }
@@ -18,6 +20,8 @@ server {
 {% endif  %}
   server_name           {{ proxy_server_name }};
 
+  # Limitting open connection per ip
+  limit_conn limitbyaddr {{ nginx_per_ip_connection_limit }};
   proxy_set_header    Host              $host;
   proxy_set_header    X-Real-IP         $remote_addr;
   proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;