Namestite Plesk na CentOS 7
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
RabbitMQ je odprtokodni posrednik za sporočila, ki podpira AMQP, STOMP in druge komunikacijske tehnologije. Široko se uporablja v podjetniških aplikacijah in sodobnih arhitekturah mikro storitev, kjer deluje kot asinhroni kanal sporočil med različnimi mikro storitvami. Ta priročnik bo opisal, kako lahko združite RabbitMQ v več strežnikov CentOS 7, da ustvarite posrednika sporočil z visoko razpoložljivostjo. V tej vadnici bo en strežnik deloval kot glavni strežnik, drugi strežniki pa bodo delovali kot zrcalni strežniki, če glavni strežnik ne bo na voljo.
Požarni zid CentOS, ( firewalld
), privzeto ne dovoljuje nobenega dohodnega prometa. Da bo RabbitMQ na voljo za druge sisteme v omrežju in zunaj njega ter da nam omogočimo dostop do upravljalne konzole, moramo najprej odpreti nekatera vrata.
Upravljalna konzola spletnega vmesnika RabbitMQ privzeto posluša vrata 15672
. Upravljalno konzolo želimo narediti javno dostopno, tako da lahko do nje dostopamo iz našega računalnika. Zato bomo naročili firewalld
trajno odprtje vrat 15672
v javni coni (ki je privzeto in aktivno območje na primerku Vultr).
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
Vozlišča RabbitMQ morajo biti sposobna komunicirati med seboj. Želeli bi odpreti potrebna vrata, vendar le prek notranjega omrežja. Ne želimo, da bi lahko kdor koli na internetu upravljal naše strežnike ali jih neposredno kontaktiral. Naslednji ukazi predvidevajo, da so naši strežniki v 192.168.0.100/24
podomrežju.
Prva storitev je storitev epmd
odkrivanja vrstnikov, ki privzeto posluša na vratih 4369
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="4369" accept'
Za komunikacijo med vozlišči in CLI mora biti RabbitMQ sposoben komunicirati prek vrat 25672
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="25672" accept'
Orodja CLI komunicirajo prek obsega vrat 35672-35682
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="35672-35682" accept'
Če vaše aplikacije potrebujejo protokol AMQP, boste morali odpreti tudi vrata 5671
in 5672
. Če morate imeti možnost komuniciranja prek drugega protokola, lahko najdete potrebne informacije o omrežnih zahtevah RabbitMQ v uradni dokumentaciji RabbitMQ .
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5672" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5671" accept'
Zdaj, ko firewalld
je konfiguriran, mu moramo naročiti, naj znova naloži konfiguracijo.
sudo firewall-cmd --reload
Ponovite korake iz tega razdelka na vseh strežnikih.
rabbitmqadmin
Vtičnik za upravljanje je opremljen z orodjem Python, rabbitmqadmin
ki ga je mogoče enostavno namestiti v sistem, ko je vtičnik za upravljanje omogočen.
sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin
Za identifikacijo strežnikov pri združevanju v gruče morate uporabiti imena gostiteljev strežnika. Strežnikom privzeto ni dodeljen zapis DNS in povezava ne bo uspela. Če želite to hitro premagati, dodajte glavno in zrcalno ime gostitelja v /etc/hosts
datoteko s svojim najljubšim urejevalnikom.
Na primer, datoteka gostiteljev vašega mojstra je lahko videti takole. Bodite pozorni na zadnja dva zapisa, ki strežnikom omogočata, da se med seboj identificirajo po imenu gostitelja. Ne pozabite spremeniti naslova IP v svoje.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 guest
::1 guest
127.0.0.1 YOUR_MASTER_SERVER_HOST_NAME
::1 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.101 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.102 YOUR_MIRROR_SERVER_HOST_NAME
Predpogoj za uvoz, ki omogoča povezovanje vozlišč med seboj, je, da so piškotki Erlang vseh vozlišč enaki. Privzeto bo vsakemu vozlišču dodeljen edinstven piškotek Erlang, zato ga morate znova konfigurirati na vseh vozliščih.
Naslednji ukaz bo piškotek Erlang nastavil na " WE<3COOKIES
", vendar ga lahko spremenite po svojih željah. To naredite na vseh strežnikih.
sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"
Znova zaženite RabbitMQ na vseh strežnikih, da se prepričate, da je piškotek Erlang pravilno ponovno naložen.
sudo systemctl restart rabbitmq-server.service
Izvedite naslednje ukaze na vseh strežnikih razen na glavnem strežniku. To bo omogočilo, da se vozlišča pridružijo glavnemu strežniku in tvorijo gručo.
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app
Preverite, ali so se vozlišča pridružila gruči, tako da zaženete naslednji ukaz.
sudo rabbitmqctl cluster_status
Vsa vaša vozlišča se bodo pojavila v nodes
in running_nodes
razdelku izhoda. Od zdaj naprej vam ni več treba ponavljati korakov na vsakem strežniku, konfiguracija bo samodejno zrcaljena na druga vozlišča.
Zdaj, ko imamo gručo vozlišč RabbitMQ, lahko to uporabimo za izdelavo čakalnih vrst in izmenjav z visoko razpoložljivostjo z nastavitvijo novega pravilnika. Ta pravilnik lahko dodate prek konzole za upravljanje RabbitMQ ali z vmesnikom ukazne vrstice.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
Naslednji seznam bo pojasnil, kaj pomeni vsak del ukaza.
-p "/"
: Uporabite ta pravilnik na "/"
vhostu (privzeto po namestitvi)--priority 1
: vrstni red, v katerem se uporabljajo pravilniki --apply-to "all"
: Lahko je "queues"
, "exchanges"
oz"all"
ha
: Ime, ki ga damo naši politiki ".*"
: Regularni izraz, ki se uporablja za odločanje, za katere čakalne vrste ali izmenjave se uporablja ta pravilnik. ".*"
bo ustrezala vsem'{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
: JSON predstavitev pravilnika. Ta dokument opisuje, da želimo - točno 2 vozlišči, na katerih se podatki samodejno sinhronizirajoSkratka, ta politika bo zagotovila, da bomo vedno imeli 2 kopiji podatkov v čakalni vrsti ali izmenjavi, dokler imamo vsaj 2 vozlišči, ki delujeta. Če imate več vozlišč, lahko povečate vrednost ha-params
. Priporočljiv je sklepčnost ( N/2 + 1
) vozlišč. Če imate več kopij vaših podatkov, bi to povzročilo večjo porabo diska, v/iz in omrežja, kar bi lahko povzročilo poslabšano zmogljivost.
Če želite podatke zrcaliti na vsa vozlišča v gruči, lahko uporabite naslednji dokument JSON.
'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'
Če želite podatke zrcaliti samo na določena vozlišča (na primer: node-1
in node-2
), lahko uporabite naslednje.
'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'
Regularni izraz lahko spremenite tako, da različnim čakalnim vrstam dodelite različne pravilnike. Recimo, da imamo naslednja tri vozlišča:
Nato lahko ustvarimo dva pravilnika, ki bosta povzročila, da bodo čakalne vrste imele ime, ki se začne z "client", da se zrcalijo v rabbit@client-ha
vozlišče in da se vse čakalne vrste, ki imajo ime, ki se začne z "product", zrcalijo v rabbit@product-ha
vozlišče.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-client "client.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@client-ha"], "ha-sync-mode": "automatic"}
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-product "product.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@product-ha"], "ha-sync-mode": "automatic"}
Majhna pripomba: ekskluzivne čakalne vrste niso nikoli zrcaljene ali trajne v RabbitMQ, tudi če bi ta pravilnik ustrezal takšnim čakalnim vrstam. Ekskluzivne čakalne vrste se samodejno uničijo, ko odjemalec prekine povezavo, zato ga ne bi bilo koristno podvajati na drug strežnik. Če bi strežnik odpovedal, bi odjemalec prekinil povezavo z njim in čakalna vrsta bi bila samodejno uničena. Uničeni bi bili tudi zrcaljeni primerki.
Da bi preizkusili gručasto nastavitev, lahko ustvarimo novo čakalno vrsto z vmesnikom ukazne vrstice prek upravljalne konzole.
sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true
To bo ustvarilo trajno čakalno vrsto na privzetem /
vhostu z imenom my-ha-queue
.
Zaženite naslednji ukaz in v izhodu preverite, ali ima čakalna vrsta dodeljeno našo politiko 'ha' in ima pid-je na glavnem in zrcalnem vozlišču.
sudo rabbitmqctl list_queues name policy state pid slave_pids
Zdaj lahko objavimo sporočilo v čakalni vrsti iz glavnega vozlišča in zaustavimo RabbitMQ na glavnem vozlišču.
sudo rabbitmqadmin -u user_name -p password publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown
Zdaj ga vrnite tako, da se povežete z zrcalnim vozliščem.
sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue
Končno lahko znova zaženemo naše glavno vozlišče.
sudo systemctl start rabbitmq-server.service
Kot smo že omenili, RabbitMQ samodejno ustvari gostujočega uporabnika s privzetim geslom za goste. Slaba praksa bi bila, če bi tega privzetega uporabnika pustili na javno izpostavljenem sistemu.
sudo rabbitmqctl delete_user guest
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne
Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite
VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti
Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal
Uporaba drugega sistema? Mattermost je odprtokodna alternativa sporočilni storitvi Slack SAAS, ki jo gosti sami. Z drugimi besedami, z Mattermostom si pribl
Kaj potrebujete Vultr VPS z vsaj 1 GB RAM-a. SSH dostop (z root/administrativnimi pravicami). 1. korak: Namestitev BungeeCord Najprej najprej
Nadzorna plošča Plesk ima zelo lepo integracijo za Lets Encrypt. Lets Encrypt je eden edinih ponudnikov SSL, ki izdaja potrdila v celoti
V času pisanja je MariaDB 10.1 razvojna različica MariaDB. Temelji na MariaDB 5.5 in vključuje funkcije, prenesene nazaj iz MySQL 5.6. Ther
Lets Encrypt je certifikacijski organ, ki je namenjen brezplačnemu zagotavljanju certifikatov SSL. cPanel je zgradil lepo integracijo za vas in vašo stranko
Uporaba drugega sistema? Concrete5 je odprtokodni CMS, ki ponuja številne značilne in uporabne funkcije za pomoč urednikom pri preprosti izdelavi vsebine.
Uporaba drugega sistema? Review Board je brezplačno in odprtokodno orodje za pregledovanje izvorne kode, dokumentacije, slik in še veliko več. Gre za spletno programsko opremo
V tem priročniku se boste naučili, kako nastaviti preverjanje pristnosti HTTP za spletni strežnik Nginx, ki deluje na CentOS 7. Zahteve Za začetek boste potrebovali
YOURLS (Your Own URL Shortener) je odprtokodna aplikacija za krajšanje URL-jev in analitiko podatkov. V tem članku bomo obravnavali postopek namestitve
Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je
Uvod Imenik /etc/ igra ključno vlogo pri delovanju sistema Linux. Razlog za to je skoraj vsaka sistemska konfiguracija
Številni sistemski skrbniki upravljajo velike količine strežnikov. Ko je treba do datotek dostopati prek različnih strežnikov, se prijavite v vsakega posebej ca
Ta vadnica bo obravnavala postopek namestitve igralnega strežnika Half Life 2 na sistem CentOS 6. 1. korak: Namestitev predpogojev Za nastavitev ou
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več