Κοινή χρήση τεχνολογίας

Το Haproxy δημιουργεί σύμπλεγμα ιστού

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1: Ανάλυση περίπτωσης

1: Επισκόπηση υπόθεσης

2: Προκαταρκτική γνώση

3: Περιβάλλον θήκης

2: Υλοποίηση υπόθεσης

1: Μεταγλώττιση και εγκατάσταση του διακομιστή nginx (τα βήματα για τους δύο ιστότοπους nginx είναι ακριβώς τα ίδια, μόνο η δοκιμαστική σελίδα είναι διαφορετική)

[root@localhost ~]# yum -y εγκατάσταση pcre-devel zlib-devel gcc*

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz

[root@localhost ~]# cd nginx-1.12.0/

[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@localhost nginx-1.12.0]# πραγματοποίηση && εγκατάσταση

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/0

[root@localhost html]# echo "test web01" > test.html

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# nginx -t

[root@localhost ~]# nginx ##Ξεκινήστε τη διαδικασία nginx

[root@localhost ~]# netstat -anpt | grep nginx

2: Μεταγλώττιση και εγκατάσταση του Haproxy

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# setenforce 0

[root@localhost ~]# yum -y εγκατάσταση pcre-devel bzip2-devel gcc*

[root@localhost ~]# tar zxvf haproxy-1.5.19.tar.gz

[root@localhost ~]# cd haproxy-1.5.19/

[root@localhost haproxy-1.5.19]# make TARGET=linux26

[root@localhost haproxy-1.5.19]# κάντε εγκατάσταση

Σημείωση:

linux22 για Linux 2.2

linux24 για Linux 2.4 και νεότερη έκδοση (προεπιλογή)

linux24e για Linux 2.4 με υποστήριξη για λειτουργικό epoll (> 0.21)

linux26 για Linux 2.6 και νεότερη έκδοση

solaris για Solaris 8 ή 10 (άλλα μη δοκιμασμένα)

freebsd για FreeBSD 5 έως 8.0 (άλλα μη δοκιμασμένα)

openbsd για OpenBSD 3.1 έως 4.6 (άλλα μη δοκιμασμένα)

cygwin για Cygwin

γενικό για οποιοδήποτε άλλο λειτουργικό σύστημα.

προσαρμοσμένη για μη αυτόματη προσαρμογή κάθε ρύθμισης

3: Διαμόρφωση διακομιστή Haproxy

(1) Δημιουργία αρχείου ρυθμίσεων χαροξυ

[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy

[root@localhost haproxy-1.5.19]# παραδείγματα cp/haproxy.cfg /etc/haproxy/

(2) Δημιουργία σεναρίου υπηρεσίας

[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy

[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy

[root@localhost ~]# chkconfig --προσθήκη αφροξίας

(3) Εισαγωγή διαμόρφωσης απρόξυ

[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg

παγκόσμια

log 127.0.0.1 local0

ημερολόγιο 127.0.0.1 τοπική1 ειδοποίηση

#log πληροφορίες loghost local0

maxconn 4096

uid 99

gid 99

δαίμονας

#debug

#ησυχια

προεπιλογές

παγκόσμια καταγραφή

λειτουργία http

επιλογή httplog

επιλογή dontlognull

επανάληψη 3

# εκ νέου αποστολή

maxconn 2000

contimeout 5000

clitimeout 50000

srvtimeout 50000

ακούστε το webcluster 0.0.0.0:80

επιλογή httpchk GET /index.html

ισορροπία στρογγυλής καμπίνας

διακομιστής inst1 192.168.1.61:80 έλεγχος μεταξύ 2000 πτώση 3

διακομιστή inst2 192.168.1.62:80 έλεγχος μεταξύ 2000 πτώση 3

Μπορείτε να προσθέσετε βάρος μετά από κάθε διακομιστή για να ορίσετε την τιμή βάρους.

διακομιστής inst1 192.168.1.61:80 έλεγχος μεταξύ 2000 πτώση 3βάρος 1

διακομιστή inst2 192.168.1.62:80 έλεγχος μεταξύ 2000 πτώση 3βάρος 2

Επεξήγηση κάθε δήλωσης

παγκόσμια

log 127.0.0.1 local0 \διαμόρφωση καταγραφής,τοπική0Είναι η συσκευή καταγραφής, η προεπιλογή είναι το αρχείο καταγραφής συστήματος

log 127.0.0.1 local1 σημείωση \Το επίπεδο καταγραφής είναιειδοποίηση

#log πληροφορίες loghost local0

maxconn 4096 \Μέγιστος αριθμός συνδέσεων

uid 99 \χρήστηςuid

gid 99 \χρήστηςgid

δαίμονας \Εκτελέστε ως διαδικασία δαίμονα

#debug \Λειτουργία εντοπισμού σφαλμάτων, εξαγωγή πληροφοριών εκκίνησης σε τυπική έξοδο

#ησυχια \Αθόρυβη λειτουργία, χωρίς έξοδο κατά την εκκίνηση

προεπιλογές

παγκόσμια καταγραφή \χρήσησφαιρικόςορίζεται σύνδεση

λειτουργία http \Η λειτουργία είναιhttp

επιλογή httplog \χρήσηhttpΗ μορφή της καταγραφής

επιλογή dontlognull \εξασφαλίζωHAProxyΜην καταγράφετε τα πακέτα καρδιακών παλμών που αποστέλλονται από τον εξισορροπητή φορτίου ανώτερου επιπέδου για τον εντοπισμό δεδομένων κατάστασης.

επαναλήψεις 3 \Ελέγξτε τον αριθμό των αποτυχιών σύνδεσης κόμβου, ο οποίος υπερβαίνει3Ο κόμβος θεωρείται μη διαθέσιμος

  # εκ νέου αποστολή\όταν φορτώνεταιΌταν η τιμή είναι πολύ υψηλή, οι συνδέσεις που έχουν υποστεί επεξεργασία στην τρέχουσα ουρά για μεγάλο χρονικό διάστημα θα τερματίζονται αυτόματα.

maxconn 2000 \Μέγιστος αριθμός συνδέσεων

contimeout 5000 \Λήξη χρονικού ορίου σύνδεσηςΚυρία

clitimeout 50000Λήξη χρονικού ορίου πελάτηΚυρία

srvtimeout 50000Λήξη χρονικού ορίου διακομιστήΚυρία

ακούστε webcluster 0.0.0.0:80 \Καθορίστε τους αριθμούς θύρας συμπλέγματος και ακρόασης

επιλογή httpchk GET /index.html \Ελέγξτε τον διακομιστήindex.htmlέγγραφο,Ρυθμίσεις URL ανίχνευσης καρδιακού παλμού

ισορροπία στρογγυλής καμπίνας \Ο αλγόριθμος προγραμματισμού εξισορρόπησης φορτίου είναι στρογγυλός

διακομιστής inst1 192.168.1.61:80 έλεγχος μεταξύ 2000 πτώση 3 \Ορίστε τους διαδικτυακούς κόμβους

διακομιστή inst2 192.168.1.62:80 έλεγχος μεταξύ 2000 πτώση 3

έλεγχος μεταξύ 2000είναι η ανίχνευση της συχνότητας του καρδιακού παλμού (κάθε2000 msΕντοπίστηκε μία φορά),πτώση 3Ναί3Ο διακομιστής θεωρείται μη διαθέσιμος σε περίπτωση αποτυχίας

Στη νέα έκδοση, οι ρυθμίσεις χρονικού ορίου έχουν προσαρμοστεί ως εξής:

Το contimeout αντικαθίσταται από το timeout connect:Καθορίστε την περίοδο χρονικού ορίου αναμονής για την προώθηση των αιτημάτων πελατών στον διακομιστή υποστήριξης

clitimeout αντικαθίσταται από timeout client:Η περίοδος χρονικού ορίου για την αδράνεια του πελάτη είναι ο χρόνος που χρειάζεται για να συνδεθεί η εφαρμογή στο haproxy

Το srvtimeout αντικαθίσταται από διακομιστή χρονικού ορίου:Αφού ο πελάτης δημιουργήσει μια σύνδεση με τον διακομιστή, η περίοδος χρονικού ορίου αναμονής για τον διακομιστή είναι ο χρόνος που χρειάζεται για να συνδεθεί το haproxy στον διακομιστή web υποστήριξης.

Σημείωση:

απροξίαΥπάρχουν οκτώ αλγόριθμοι προγραμματισμού

    1. ισορροπία ελάχιστησυνΕλάχιστος αριθμός συνδέσεων
    2. ισορροπία στρογγυλής καμπίναςσφυγμομέτρηση
    3. πηγή ισορροπίαςΣύμφωνα με τον πελάτηIPΠώς να κάνετε hashing
    4. static-rrΑνάλογα με το βάρος
    5. uriκατόπιν αιτήσεωςURI
    6. url_paramκατόπιν αιτήσεωςURlπαράμετρος
    7. hdr(όνομα)σύμφωνα μεHTTPαίτημα κεφαλίδας για κλείδωμα κάθε φοράHTTPπαρακαλώ
    8. rdp-cookie(όνομα)σύμφωνα μεcookie (όνομα)να κλειδώνει και να κατακερματίζει κάθε φοράTCPπαρακαλώ

chroot /usr/share/haproxy \Δηλαδή να αλλάξετε τη θέση του ριζικού καταλόγου που αναφέρεται όταν εκτελείται το πρόγραμμα Εάν έχετε αυτόν τον κωδικό, πρέπει να δημιουργήσετε αυτόν τον κατάλογο.

Σχετικά με τα επίπεδα καταγραφής

στατικό επίπεδο DEBUG

Το DEBUG Level επισημαίνει ότι τα συμβάντα λεπτομερών πληροφοριών είναι πολύ χρήσιμα για τον εντοπισμό σφαλμάτων εφαρμογών.

στατικό επίπεδο ΠΛΗΡΟΦΟΡΙΕΣ

Το επίπεδο INFO υποδεικνύει ότι το μήνυμα επισημαίνει τη διαδικασία εκτέλεσης της εφαρμογής σε χονδρόκοκκο επίπεδο.

στατικό επίπεδο ΠΡΟΕΙΔΟΠΟΙΗΣΗ

Το επίπεδο ΠΡΟΕΙΔΟΠΟΙΗΣΗΣ υποδεικνύει μια πιθανή κατάσταση σφάλματος.

ΣΦΑΛΜΑ στατικού επιπέδου

Το επίπεδο ERROR υποδεικνύει ότι, παρόλο που παρουσιάζεται ένα συμβάν σφάλματος, δεν επηρεάζει τη συνεχή λειτουργία του συστήματος.

στατικό Επίπεδο FATAL

Το επίπεδο FATAL υποδεικνύει ότι κάθε σοβαρό συμβάν σφάλματος θα προκαλέσει την έξοδο της εφαρμογής.

Επιπλέον, υπάρχουν δύο ειδικά επίπεδα καταγραφής διαθέσιμα:

στατικό επίπεδο ALL

Το ALL Level είναι το χαμηλότερο επίπεδο και χρησιμοποιείται για την ενεργοποίηση όλων των καταγραφών.

στατικό επίπεδο OFF

Το επίπεδο OFF είναι το υψηλότερο επίπεδο και χρησιμοποιείται για την απενεργοποίηση όλων των καταγραφών.

4: Έναρξη

[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy start

5: Δοκιμάστε το σύμπλεγμα ιστού

http://192.168.1.60/test.html

Ανανεώστε τη σελίδα για δοκιμή

ή δοκιμή χρησιμοποιώντας σενάριο

[root@localhost ~]# για i σε $(ακολουθία 10); do curl http://192.168.1.60/test.html ;τελείωσε

6: Καταγραφή χαπροξυ

Το Haproxy δεν καταγράφει αρχεία καταγραφής από προεπιλογή.

μέθοδος πρώτη:

[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg

παγκόσμια

# log 127.0.0.1 local0

# log 127.0.0.1 τοπική1 ειδοποίηση

#log πληροφορίες loghost local0

maxconn 4096

chroot /usr/share/haproxy

uid 99

gid 99

δαίμονας

#debug

#ησυχια

καταγραφή /dev/log local0 πληροφορίες

log /dev/log local0 ειδοποίηση

[root@localhost haproxy-1.4.24]# αγγίξτε /etc/rsyslog.d/haproxy.conf

[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf

εάν ($programname == 'haproxy' και $syslogseverity-text == 'πληροφορίες') τότε -/var/log/haproxy/haproxy-info.log

& ~

εάν ($programname == 'haproxy' and $syslogseverity-text == 'notice') τότε -/var/log/haproxy/haproxy-notice.log

& ~

[root@localhost haproxy-1.4.24]# υπηρεσία rsyslog επανεκκίνηση

[root@localhost ~]#/etc/init.d/haproxy επανεκκίνηση

[root@localhost ~]# γάτα /var/log/haproxy/haproxy-info.log

Μέθοδος δεύτερη:

(1) Επεξεργασία /etc/haproxy/haproxy.conf

[root@localhost ~]# vi /etc/haproxy/haproxy.cfg

παγκόσμια

log 127.0.0.1 local3

Το #local3 είναι η συσκευή, που αντιστοιχεί στη διαμόρφωση στο /etc/rsyslog.conf και το επίπεδο καταγραφής των πληροφοριών ανακυκλώνεται από προεπιλογή.

(2) Γράψτε το αρχείο καταγραφής αφροξίας

[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf

$ModLoad imudp

$UDPServerRun 514

local3.* /var/log/haproxy.log

&~

Σημείωση:

$ModLoad imudpΠρωτόκολλο UDP για τη συλλογή αρχείων καταγραφής

$UDPServerRun 514Καθορίστε τον αριθμό θύρας που χρησιμοποιείται για τη συλλογή αρχείων καταγραφής

local3.* /var/log/haproxy.logΚαθορίστε τη θέση αποθήκευσης αρχείων καταγραφής

(3) Διαμορφώστε το κύριο αρχείο διαμόρφωσης του rsyslog και ενεργοποιήστε την απομακρυσμένη καταγραφή (προαιρετικό)

[root@localhost ~]# vim /etc/sysconfig/rsyslog

SYSLOGD_OPTIONS=”-c 2 -r -m 0″

#-γ 2 Χρησιμοποιήστε τη λειτουργία συμβατότητας, η προεπιλογή είναι -c 5

#-r Ενεργοποίηση απομακρυσμένης καταγραφής

Χρονική σήμανση #-m 0.Η μονάδα είναι λεπτά Όταν είναι 0, σημαίνει ότι η λειτουργία είναι απενεργοποιημένη.

(4) Επανεκκινήστε τις υπηρεσίες haproxy και rsyslog

[root@localhost ~]# systemctl επανεκκίνηση του rsyslog

[root@localhost ~]# systemctl επανεκκίνηση απροσεξίας

(5) Ελέγξτε το αρχείο καταγραφής μετά την επίσκεψη στον ιστότοπο

[root@localhost ~]# cat /var/log/αφροξία.log

Επέκταση: proxy mysql

ακούστε mysql 0.0.0.0:3306

διακομιστής mysql1 192.168.10.205:3306 έλεγχος θύρας 3306 maxconn 300