Προσθήκη περιορισμού ρυθμού πύλης Kong.
Ορίστε τους τρέχοντες κανόνες ορίων με βάση το έτος, τον μήνα, την ημέρα, την ώρα, το λεπτό και το δευτερόλεπτο και πολλοί περιορισμοί τίθενται σε ισχύ ταυτόχρονα.
Για παράδειγμα, όχι περισσότερες από 10 κλήσεις την ημέρα, όχι περισσότερες από 3 φορές το λεπτό.
Όταν υπάρχουν περισσότερες από 3 επισκέψεις σε ένα λεπτό, θα αναφερθεί ένα σφάλμα την τέταρτη φορά.
Όταν ο αριθμός των επισκέψεων υπερβαίνει τις 10 φορές την ημέρα, θα αναφερθεί σφάλμα την ενδέκατη φορά.
Σενάριο: Πρέπει να περιορίσω τη διεπαφή API σε μία μόνο IP που μπορεί να ζητηθεί μόνο 3 φορές το λεπτό, όταν ενεργοποιώ την προσθήκη, δεν υπάρχει πρόβλημα με την κανονική πρόσβαση στην πύλη kong μέσω της IP, αλλά το ανώτερο επίπεδο του kong εξακολουθεί να έχει το nginx ως φορτίο, επομένως η IP που λαμβάνεται από το kong είναι πάντα η ιδιωτική IP του μηχανήματος nginx, έτσι ώστε όλες οι IP να έχουν πρόσβαση στη διεπαφή API μόνο 3 φορές το λεπτό, ούτε μία IP δεν έχει πρόσβαση στη διεπαφή 3 φορές το λεπτό.
Όπως φαίνεται στο παρακάτω σχήμα, εφόσον η διεπαφή ζητείται 3 φορές το λεπτό, όλοι οι επισκέπτες θα απορρίπτονται.
Εγκατέστησα το πρόσθετο http-log για να καταγράψω το αίτημα και τις αντίστοιχες πληροφορίες, ώστε να μπορέσουμε να το διορθώσουμε.
Εφόσον το kong δεν λαμβάνει client_ip διεύθυνση κανονικά, πώς μπορώ να διορθώσω αυτό το πρόβλημα;
Λύση
Τροποποιήστε το αρχείο διαμόρφωσης kong,
/etc/kong/kong.conf文件,增加trusted_ips = 0.0.0.0/0,::/0
real_ip_header = X-Forwarded-For
ΕπιτέλουςΕπανεκκινήστε το Kong, εντολή: kong restart
trusted_ips
Ορίστε ένα μπλοκ αξιόπιστων διευθύνσεων IP που είναι γνωστό ότι στέλνουν τη σωστή κεφαλίδα X-Forwarded-*. Τα αιτήματα από αξιόπιστες IP αναγκάζουν το Kong να προωθήσει την κεφαλίδα του στο X-Forwarded-* upstream. Τα μη αξιόπιστα αιτήματα κάνουν το Kong να εισάγει τη δική του κεφαλίδα X-Forwarded-*.
Αυτή η ιδιότητα ορίζει επίσης την οδηγία στη διαμόρφωση set_real_ip_fromNginx. Δέχεται τιμές του ίδιου τύπου (μπλοκ CIDR), αλλά λίστες διαχωρισμένες με κόμματα.
Να εμπιστεύεσαι όλους /! \IP, ορίστε αυτήν την τιμή σε 0.0.0.0/0,::/0.
Εάν το unix: καθορίζει μια ειδική τιμή, όλες οι υποδοχές τομέα UNIX θα είναι αξιόπιστες. Τεκμηρίωση αναφοράς:https://docs.konghq.com/0.14.x/configuration/#trusted_ips
Αφού ολοκληρωθεί η τροποποίηση, το kong μπορεί να αποκτήσει σωστά τη διεύθυνση IP του πελάτη, όπως φαίνεται στο παρακάτω σχήμα:
(Τέλος)
|