Python Script Flask for learning API getting started #!/bin/bash apt-get update apt-get install -y python3-pip python3-flask # Create application file cat <<EOF > /home/app.py from flask import Flask, jsonify, request app = Flask(__name__) transactions = [ {"id": 1, "amount": 100, "category": "Food", "description": "Lunch"}, {"id": 2, "amount": 500, "category": "Rent", "description": "Monthly rent"} ] @app.route("/health") def health(): return jsonify({"status": "ok"}) @app.route("/transactions", methods=["GET"]) def get_transactions(): return jsonify(transactions) @app.route("/transactions", methods=["POST"]) def add_transaction(): data = request.json new_id = max([t["id"] for t in transactions]) + 1 if transactions else 1 data["id"] = new_id ...
Kalau website kamu sering kena spam, serangan DDoS ringan, atau sekadar ingin membatasi request dari satu IP biar server nggak berat, kamu bisa atur rate limit di Apache2 . Di sini, saya jelaskan dua cara mudah: pakai mod_evasive dan mod_ratelimit . 1. Blokir IP yang Kirim Terlalu Banyak Request (mod_evasive) Modul ini bantu mendeteksi dan memblokir IP yang terlalu banyak request dalam waktu singkat. Cocok untuk mencegah spam atau brute force. Langkah 1: Install mod_evasive sudo apt update sudo apt install libapache2-mod-evasive Langkah 2: Buat File Konfigurasi sudo nano /etc/apache2/mods-available/evasive.conf Isi dengan ini: <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 10 DOSSiteCount 100 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 60 DOSEmailNotify admin@domainmu.com DOSLogDir "/var/log/mod_evasive" </IfModule> Langkah 3: Buat Folder Log sud...