diff --git a/src/freedombone-app-matrix b/src/freedombone-app-matrix
index 0ada91cdcefcf126efeb60db5f49d473bf6510df..918b0316f7421e5db0ba46c245be042c73870c49 100755
--- a/src/freedombone-app-matrix
+++ b/src/freedombone-app-matrix
@@ -221,12 +221,15 @@ function matrix_nginx {
     nginx_limits ${MATRIX_DOMAIN_NAME} '15m'
     { echo "    proxy_pass http://localhost:${MATRIX_PORT};";
       echo '  }';
-      echo '}'; } >> $matrix_nginx_site
+      echo '}'; } >> "$matrix_nginx_site"
 
-    if [ ! -d /var/www/$MATRIX_DOMAIN_NAME ]; then
-        mkdir -p /var/www/$MATRIX_DOMAIN_NAME/htdocs
+    if [ ! -d "/var/www/$MATRIX_DOMAIN_NAME" ]; then
+        mkdir -p "/var/www/$MATRIX_DOMAIN_NAME/htdocs"
     fi
 
+    sed -i 's|limit_conn conn_limit_per_ip.*|limit_conn conn_limit_per_ip 50;|g' "$matrix_nginx_site"
+    sed -i 's|limit_req zone.*|limit_req zone=req_limit_per_ip burst=50 nodelay;|g' "$matrix_nginx_site"
+
     function_check add_ddns_domain
     add_ddns_domain $MATRIX_DOMAIN_NAME
 }
@@ -412,6 +415,16 @@ function upgrade_matrix {
        return
     fi
 
+    # update connection rate limits
+    read_config_param MATRIX_DOMAIN_NAME
+    matrix_nginx_site=/etc/nginx/sites-available/$MATRIX_DOMAIN_NAME
+    if ! grep -q 'req_limit_per_ip burst=50 ' "$matrix_nginx_site"; then
+        sed -i 's|limit_req zone.*|limit_req zone=req_limit_per_ip burst=50 nodelay;|g' "$matrix_nginx_site"
+    fi
+    if ! grep -q 'conn_limit_per_ip 50;' "$matrix_nginx_site"; then
+        sed -i 's|limit_conn conn_limit_per_ip.*|limit_conn conn_limit_per_ip 50;|g' "$matrix_nginx_site"
+    fi
+
     matrix_expire_old_posts
 
     CURR_MATRIX_COMMIT=$(get_completion_param "matrix commit")
diff --git a/src/freedombone-app-riot b/src/freedombone-app-riot
index 411584cf8296c1b8c51485a67354f41d49da167e..075cad1fa541636e4e2a55ba30a286f52700ef56 100755
--- a/src/freedombone-app-riot
+++ b/src/freedombone-app-riot
@@ -168,9 +168,10 @@ function upgrade_riot {
         return
     fi
 
+    # update connection rate limits
     read_config_param RIOT_DOMAIN_NAME
     riot_nginx_site=/etc/nginx/sites-available/$RIOT_DOMAIN_NAME
-    if ! grep -q 'req_limit_per_ip burst=50' "$riot_nginx_site"; then
+    if ! grep -q 'req_limit_per_ip burst=50 ' "$riot_nginx_site"; then
         sed -i 's|limit_req zone.*|limit_req zone=req_limit_per_ip burst=50 nodelay;|g' "$riot_nginx_site"
     fi