mnemo_cards/tools/deploy/fix-vscode-rate-limit.sh

82 lines
2.7 KiB
Bash
Raw Normal View History

2025-11-22 20:22:44 +00:00
#!/bin/bash
# Script to fix VSCode rate limiting issue (429 Too Many Requests)
# Updates nginx.conf to increase rate limits for VSCode
set -e
SERVER_IP="147.45.152.129"
SERVER_USER="root"
echo "🔧 Fixing VSCode rate limiting configuration..."
echo "Server: $SERVER_IP"
echo ""
ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH'
set -e
echo "📋 Backing up current nginx.conf..."
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup.$(date +%Y%m%d_%H%M%S)
echo ""
echo "🔍 Checking current rate limit configuration..."
if grep -q "limit_req_zone.*vscode_general" /etc/nginx/nginx.conf; then
echo "Current vscode_general rate limit:"
grep "limit_req_zone.*vscode_general" /etc/nginx/nginx.conf
echo ""
echo "📝 Updating rate limit from 30r/m to 200r/m..."
# Update vscode_general rate limit
sed -i 's/limit_req_zone $binary_remote_addr zone=vscode_general:10m rate=30r\/m;/limit_req_zone $binary_remote_addr zone=vscode_general:10m rate=200r\/m;/' /etc/nginx/nginx.conf
echo "✅ Rate limit updated"
echo ""
echo "New vscode_general rate limit:"
grep "limit_req_zone.*vscode_general" /etc/nginx/nginx.conf
else
echo "⚠️ vscode_general rate limit zone not found"
echo "Adding rate limiting zones..."
# Find http block and add rate limiting zones
if grep -q "^http {" /etc/nginx/nginx.conf; then
sed -i '/^http {/a\ # Rate limiting zones for VSCode Server\n limit_req_zone $binary_remote_addr zone=vscode_general:10m rate=200r/m;\n limit_req_zone $binary_remote_addr zone=vscode_login:10m rate=5r/m;' /etc/nginx/nginx.conf
echo "✅ Rate limiting zones added"
else
echo "❌ Could not find http block in nginx.conf"
exit 1
fi
fi
echo ""
echo "📊 Testing nginx configuration syntax..."
/usr/sbin/nginx -t
if [ $? -eq 0 ]; then
echo ""
echo "🔄 Reloading nginx..."
systemctl reload nginx
echo "✅ nginx reloaded successfully"
else
echo "❌ nginx configuration test failed"
echo "Restoring backup..."
cp /etc/nginx/nginx.conf.backup.* /etc/nginx/nginx.conf
exit 1
fi
echo ""
echo "📊 Final rate limit configuration:"
grep "limit_req_zone.*vscode" /etc/nginx/nginx.conf
ENDSSH
echo ""
echo "✅ Done!"
echo ""
echo "📝 Changes made:"
echo " - vscode_general rate limit: 30r/m → 200r/m"
echo " - Static files are excluded from rate limiting (in vscode-nginx.conf)"
echo ""
echo "🌐 Test VSCode Server at:"
echo " https://vscode.mnemo-cards.online/"