77 lines
2.6 KiB
Bash
Executable file
77 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script to fix nginx 413 error by increasing client_max_body_size
|
|
# This script updates nginx configuration on the server for all domains
|
|
# including Forgejo (git push), VSCode, and web apps
|
|
|
|
set -e
|
|
|
|
SERVER_IP="147.45.152.129"
|
|
SERVER_USER="root"
|
|
MAX_SIZE="100M"
|
|
|
|
echo "🔧 Fixing nginx upload limit (413 error) on server..."
|
|
|
|
ssh "$SERVER_USER@$SERVER_IP" << 'EOF'
|
|
set -e
|
|
|
|
echo "📝 Checking current nginx configurations..."
|
|
|
|
# Update global nginx config
|
|
if ! grep -q "client_max_body_size" /etc/nginx/nginx.conf; then
|
|
echo "Adding client_max_body_size to global nginx config..."
|
|
sed -i '/http {/a\ client_max_body_size 100M;' /etc/nginx/nginx.conf
|
|
else
|
|
echo "Updating existing client_max_body_size in global config..."
|
|
sed -i 's/client_max_body_size.*$/client_max_body_size 100M;/' /etc/nginx/nginx.conf
|
|
fi
|
|
|
|
# Update all site configs in sites-available
|
|
echo "Updating all site configurations..."
|
|
for conf in /etc/nginx/sites-available/*; do
|
|
if [ -f "$conf" ]; then
|
|
echo "Processing: $conf"
|
|
|
|
# Remove all existing client_max_body_size lines to avoid duplicates
|
|
sed -i '/client_max_body_size/d' "$conf"
|
|
|
|
# Add client_max_body_size once in each server block (after first server_name)
|
|
# Use awk to add only once per server block
|
|
awk '
|
|
/server \{/ { in_server=1; added=0 }
|
|
/\}/ && in_server { in_server=0 }
|
|
{ print }
|
|
/server_name/ && in_server && !added {
|
|
print " client_max_body_size 100M;"
|
|
added=1
|
|
}
|
|
' "$conf" > "$conf.tmp" && mv "$conf.tmp" "$conf"
|
|
fi
|
|
done
|
|
|
|
echo "🧪 Testing nginx configuration..."
|
|
/usr/sbin/nginx -t
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Nginx configuration is valid"
|
|
echo "🔄 Reloading nginx..."
|
|
/usr/bin/systemctl reload nginx
|
|
echo "✅ Nginx reloaded successfully"
|
|
|
|
echo ""
|
|
echo "📊 Summary:"
|
|
echo " - client_max_body_size set to 100M globally"
|
|
echo " - All site configurations updated"
|
|
echo " - Git push should now work without 413 errors"
|
|
echo ""
|
|
echo "Current client_max_body_size in configs:"
|
|
grep -r "client_max_body_size" /etc/nginx/ 2>/dev/null | grep -v ".default" || echo " (checking...)"
|
|
else
|
|
echo "❌ Nginx configuration test failed"
|
|
exit 1
|
|
fi
|
|
EOF
|
|
|
|
echo ""
|
|
echo "✅ Done! Git push should now work without 413 errors."
|
|
echo "💡 If you still get 413, try increasing MAX_SIZE in this script."
|