Telepítse a Plesket a CentOS 7 rendszeren
Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait
A RabbitMQ egy nyílt forráskódú üzenetközvetítő, amely támogatja az AMQP, STOMP és más kommunikációs technológiákat. Széles körben használják a vállalati alkalmazásokban és a modern mikroszolgáltatási architektúrákban, ahol aszinkron üzenetcsatornaként működik a különböző mikroszolgáltatások között. Ez az útmutató leírja, hogyan csoportosíthatja a RabbitMQ-t több CentOS 7-kiszolgálón, hogy magas rendelkezésre állású üzenetközvetítőt hozzon létre. Ebben az oktatóanyagban az egyik kiszolgáló főkiszolgálóként, a többi kiszolgáló pedig tükörszerverként fog működni arra az esetre, ha a főkiszolgáló elérhetetlenné válna.
A CentOS tűzfal ( firewalld
) alapértelmezés szerint nem engedélyez bejövő forgalmat. Ahhoz, hogy a RabbitMQ elérhetővé váljon a hálózaton belüli és kívüli más rendszerek számára, és hogy hozzáférhessünk a felügyeleti konzolhoz, először meg kell nyitnunk néhány portot.
A RabbitMQ webes felületkezelő konzolja alapértelmezés szerint a porton figyel 15672
. Szeretnénk a felügyeleti konzolt nyilvánosan elérhetővé tenni, hogy számítógépünkről elérhessük. Ezért azt utasítjuk, firewalld
hogy véglegesen nyissa meg a portot 15672
a nyilvános zónában (amely az alapértelmezett és aktív zóna a Vultr példányon).
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
A RabbitMQ csomópontoknak képesnek kell lenniük kommunikálni egymással. Szeretnénk megnyitni a szükséges portokat, de csak a belső hálózaton keresztül. Nem akarjuk, hogy az interneten bárki felügyelhesse vagy közvetlenül kapcsolatba léphessen szervereinkkel. A következő parancsok feltételezik, hogy kiszolgálóink az 192.168.0.100/24
alhálózaton vannak.
Az első szolgáltatás a epmd
peer-felderítési szolgáltatás, amely alapértelmezés szerint a porton figyel 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'
A csomópontok közötti és a CLI kommunikációhoz a RabbitMQ-nak képesnek kell lennie a porton keresztüli kommunikációra 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'
A CLI eszközök a porttartományon keresztül kommunikálnak 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'
Ha az alkalmazásoknak szüksége van az AMQP protokollra, akkor meg kell nyitnia a portokat 5671
és a 5672
. Ha más protokollon keresztül kell kommunikálnia, a RabbitMQ hálózati követelményeivel kapcsolatos szükséges információkat a hivatalos RabbitMQ dokumentációban találja .
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'
Most, hogy be firewalld
van állítva, utasítanunk kell a konfiguráció újratöltésére.
sudo firewall-cmd --reload
Ismételje meg az ebből a szakaszból származó lépéseket minden kiszolgálón.
rabbitmqadmin
A felügyeleti bővítményhez tartozik egy Python nevű eszköz, rabbitmqadmin
amely egyszerűen telepíthető a rendszerre, miután a felügyeleti bővítményt engedélyezték.
sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin
A fürtözés során a kiszolgáló állomásneveit kell használnia a kiszolgálók azonosításához. Alapértelmezés szerint a kiszolgálókhoz nincs DNS-rekord hozzárendelve, és a kapcsolat meghiúsul. Ennek gyors kiküszöböléséhez adja hozzá a fő és a tükrözött gazdagép nevét a /etc/hosts
fájlhoz kedvenc szerkesztője segítségével.
Például a mester hosts fájlja a következőképpen nézhet ki. Figyelje meg az utolsó két rekordot, amelyek lehetővé teszik a szerverek számára, hogy azonosítsák egymást gazdagépnevük alapján. Ügyeljen arra, hogy módosítsa az IP-címeket a sajátjára.
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
A csomópontok egymáshoz való csatlakozásának importálási előfeltétele, hogy az összes csomópont Erlang cookie-ja azonos legyen. Alapértelmezés szerint minden csomóponthoz egyedi Erlang cookie lesz hozzárendelve, ezért újra kell konfigurálnia az összes csomóponton.
A következő parancs az Erlang cookie-t " WE<3COOKIES
" értékre állítja , de ezt nyugodtan módosíthatja saját ízlése szerint. Tegye ezt az összes szerveren.
sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"
Indítsa újra a RabbitMQ-t az összes szerveren, hogy megbizonyosodjon arról, hogy az Erlang cookie megfelelően újra van töltve.
sudo systemctl restart rabbitmq-server.service
Hajtsa végre a következő parancsokat az összes kiszolgálón, kivéve a főkiszolgálón. Ez lehetővé teszi, hogy a csomópontok csatlakozzanak a főkiszolgálóhoz, és fürtöt képezzenek.
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app
A következő parancs futtatásával ellenőrizze, hogy a csomópontok csatlakoztak-e a fürthöz.
sudo rabbitmqctl cluster_status
Az összes csomópont megjelenik a kimenet nodes
és running_nodes
szakaszában. Mostantól nem kell megismételnie a lépéseket minden szerveren, a konfiguráció automatikusan tükröződik a többi csomóponton.
Most, hogy van egy RabbitMQ csomópontok fürtje, ezt felhasználhatjuk magas rendelkezésre állású várólisták és cserék létrehozására egy új házirend beállításával. Ez a házirend hozzáadható a RabbitMQ Management Console-on vagy a parancssori felületen keresztül.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
A következő lista elmagyarázza, mit jelentenek a parancs egyes részei.
-p "/"
: Használja ezt a házirendet a "/"
vhost-on (a telepítés után az alapértelmezett)--priority 1
: Az irányelvek alkalmazásának sorrendje --apply-to "all"
: Lehet "queues"
, "exchanges"
ill"all"
ha
: Az a név, amelyet irányelvünknek adunk ".*"
: Az a reguláris kifejezés, amely annak eldöntésére szolgál, hogy mely sorokra vagy cserékre vonatkozzon ez a házirend. ".*"
bármihez passzol'{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
: A házirend JSON-reprezentációja. Ez a dokumentum azt írja le, hogy pontosan 2 csomópontot szeretnénk, amelyeken az adatok automatikusan szinkronizálva vannakRöviden, ez a házirend biztosítja, hogy mindig legyen 2 másolatunk az adatokból egy sorban vagy cserében mindaddig, amíg legalább 2 csomópont működik. Ha több csomópontja van, növelheti az értékét ha-params
. N/2 + 1
Javasoljuk, hogy a csomópontok határozatképesek ( ). Ha több másolatot készít az adatokról, az nagyobb lemez-, i/o- és nethasználatot eredményez, ami a teljesítmény romlásához vezethet.
Ha tükrözni szeretné az adatokat a fürt összes csomópontjára, használhatja a következő JSON-dokumentumot.
'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'
Ha csak meghatározott csomópontokra szeretné tükrözni az adatokat (például: node-1
és node-2
), használhatja a következőket.
'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'
Módosíthatja a reguláris kifejezést, hogy különböző házirendeket rendeljen hozzá a különböző sorokhoz. Tegyük fel, hogy a következő három csomópontunk van:
Ezután létrehozhatunk két házirendet, amelyek eredményeképpen a sorok neve „kliens”-vel kezdődik, és tükröződik a rabbit@client-ha
csomópontban, és minden olyan sor, amelynek neve „termék”-vel kezdődik, tükröződik a rabbit@product-ha
csomópontban.
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"}
Egy kis megjegyzés itt: az exkluzív várólisták soha nem tükröződnek vagy tartósak a RabbitMQ-ban, még akkor sem, ha ez a házirend megfelelne az ilyen soroknak. Az exkluzív várólisták automatikusan megsemmisülnek, amint egy kliens megszakad, és ezért nem lenne hasznos replikálni egy másik szerverre. Ha a szerver meghibásodna, a kliens megszakad vele, és a sor automatikusan megsemmisül. A tükrözött példányok is megsemmisülnének.
A fürtözött beállítás teszteléséhez a felügyeleti konzolon keresztül a parancssori felület segítségével új sort hozhatunk létre.
sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true
Ez tartós sort hoz létre az alapértelmezett /
vhost- on a következő névvel: my-ha-queue
.
Futtassa a következő parancsot, és ellenőrizze a kimenetben, hogy a sorhoz van-e hozzárendelve a „ha” házirend, és vannak-e pid-ek a fő és egy tükörcsomóponton.
sudo rabbitmqctl list_queues name policy state pid slave_pids
Most már közzétehetünk egy üzenetet a sorba a fő csomópontból, és leállíthatjuk a RabbitMQ-t a fő csomóponton.
sudo rabbitmqadmin -u user_name -p password publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown
Most kapja vissza a tükörcsomóponthoz való csatlakozással.
sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue
Végül újraindíthatjuk főcsomópontunkat.
sudo systemctl start rabbitmq-server.service
Mint korábban említettük, a RabbitMQ automatikusan létrehoz egy vendég felhasználót alapértelmezett vendégjelszóval. Rossz gyakorlat lenne, ha ezt az alapértelmezett felhasználót nyilvánosan hozzáférhető rendszeren hagyná.
sudo rabbitmqctl delete_user guest
Más rendszert használ? A Plesk egy szabadalmaztatott webtárhely-vezérlőpult, amely lehetővé teszi a felhasználók számára, hogy adminisztrálják személyes és/vagy ügyfeleik webhelyeit, adatbázisait
A Squid egy népszerű, ingyenes Linux-program, amely lehetővé teszi továbbítási webproxy létrehozását. Ebben az útmutatóban megtudhatja, hogyan telepítheti a Squid-et a CentOS rendszerre, hogy megfordítsa
Bevezetés A Lighttpd az Apache forkja, amely sokkal kevésbé erőforrás-igényes. Könnyű, innen kapta a nevét, és meglehetősen egyszerű a használata. Telepítés
A VULTR a közelmúltban változtatásokat hajtott végre a saját oldalukon, és most már mindennek jól kell működnie, ha a NetworkManager engedélyezve van. Ha szeretné letiltani
Az Icinga2 egy hatékony felügyeleti rendszer, és mester-kliens modellben használva helyettesítheti az NRPE-alapú felügyeleti ellenőrzések szükségességét. A mester-kliens
Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,
Más rendszert használ? A Microweber egy nyílt forráskódú drag and drop CMS és online bolt. A Microweber forráskódja a GitHubon található. Ez az útmutató megmutatja neked
Más rendszert használ? A Vanilla forum egy nyílt forráskódú, PHP-ben írt fórumalkalmazás. Ez egy teljesen testreszabható, könnyen használható, és támogatja a külsőt
Más rendszert használ? A Mattermost egy nyílt forráskódú, saját üzemeltetésű alternatívája a Slack SAAS üzenetküldő szolgáltatásnak. Más szóval, a Mattermost segítségével kb
Mire lesz szüksége Egy Vultr VPS legalább 1 GB RAM-mal. SSH hozzáférés (root/adminisztrátori jogosultságokkal). 1. lépés: A BungeeCord telepítése Először is
A Plesk vezérlőpult nagyon szép integrációt kínál a Lets Encrypt számára. A Lets Encrypt egyike az egyetlen SSL-szolgáltatónak, amely teljes tanúsítványt ad ki
A Lets Encrypt egy tanúsító hatóság, amely ingyenes SSL-tanúsítványokat biztosít. A cPanel ügyes integrációt épített ki, így Ön és ügyfele
Más rendszert használ? A Concrete5 egy nyílt forráskódú CMS, amely számos megkülönböztető és hasznos funkciót kínál, hogy segítse a szerkesztőket a tartalom egyszerű létrehozásában.
Más rendszert használ? A Review Board egy ingyenes és nyílt forráskódú eszköz a forráskód, a dokumentáció, a képek és még sok más áttekintésére. Ez egy web alapú szoftver
Ebből az útmutatóból megtudhatja, hogyan állíthat be HTTP-hitelesítést egy CentOS 7 rendszeren futó Nginx webszerverhez. Követelmények A kezdéshez szüksége lesz a következőre:
Más rendszert használ? A GoAccess egy nyílt forráskódú webnapló-elemző. Használhatja naplók valós idejű elemzésére akár a terminálon, akár a
A YOURLS (Your Own URL Shortener) egy nyílt forráskódú URL-rövidítő és adatelemző alkalmazás. Ebben a cikkben a telepítés folyamatával foglalkozunk
Más rendszert használ? Bevezetés Az ArangoDB egy nyílt forráskódú NoSQL adatbázis, amely rugalmas adatmodellt kínál dokumentumokhoz, grafikonokhoz és kulcsértékekhez. Ez
Bevezetés Az /etc/ könyvtár kritikus szerepet játszik a Linux rendszer működésében. Ennek az az oka, hogy szinte minden rendszerkonfiguráció
Sok rendszergazda nagy mennyiségű kiszolgálót kezel. Ha a fájlokhoz különböző szervereken keresztül kell hozzáférni, mindegyikbe külön-külön kell bejelentkezni kb
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.
Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket