Instalējiet Plesk operētājsistēmā CentOS 7
Vai izmantojat citu sistēmu? Plesk ir patentēts tīmekļa mitinātāja vadības panelis, kas ļauj lietotājiem administrēt savas personīgās un/vai klientu vietnes, datu bāzes
RabbitMQ ir atvērtā pirmkoda ziņojumu brokeris, kas atbalsta AMQP, STOMP un citas komunikācijas tehnoloģijas. To plaši izmanto uzņēmumu lietojumprogrammās un modernās mikropakalpojumu arhitektūrās, kur tas darbojas kā asinhrons ziņojumu kanāls starp dažādiem mikropakalpojumiem. Šajā rokasgrāmatā ir aprakstīts, kā RabbitMQ var grupēt vairākos CentOS 7 serveros, lai izveidotu augstas pieejamības ziņojumu starpnieku. Šajā apmācībā viens serveris darbosies kā galvenais serveris, bet pārējie serveri darbosies kā spoguļserveri, ja galvenais serveris kļūs nepieejams.
CentOS ugunsmūris ( firewalld
) pēc noklusējuma neatļauj ienākošo trafiku. Lai RabbitMQ būtu pieejams citām sistēmām tīklā un ārpus tā un ļautu mums piekļūt pārvaldības konsolei, vispirms ir jāatver daži porti.
RabbitMQ tīmekļa saskarnes pārvaldības konsole pēc noklusējuma klausās portā 15672
. Mēs vēlamies padarīt pārvaldības konsoli publiski pieejamu, lai mēs varētu tai piekļūt no sava datora. Tāpēc mēs norādīsim firewalld
pastāvīgi atvērt portu 15672
publiskajā zonā (kas ir noklusējuma un aktīvā zona Vultr instancē).
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
RabbitMQ mezgliem jāspēj sazināties vienam ar otru. Mēs vēlētos atvērt nepieciešamos portus, bet tikai caur iekšējo tīklu. Mēs nevēlamies, lai kāds interneta lietotājs varētu administrēt vai tieši sazināties ar mūsu serveriem. Šīs komandas pieņem, ka mūsu serveri atrodas 192.168.0.100/24
apakštīklā.
Pirmais pakalpojums ir epmd
vienādranga atklāšanas pakalpojums, kas pēc noklusējuma klausās portā 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'
Lai nodrošinātu starpmezglu un CLI saziņu, RabbitMQ ir jāspēj sazināties, izmantojot portu 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'
CLI rīki sazinās portu diapazonā 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'
Ja jūsu lietojumprogrammām ir nepieciešams AMQP protokols, jums būs jāatver arī porti 5671
un 5672
. Ja jums ir jāspēj sazināties, izmantojot citu protokolu, nepieciešamo informāciju par RabbitMQ tīkla prasībām varat atrast oficiālajā RabbitMQ dokumentācijā .
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'
Tagad, kad tas firewalld
ir konfigurēts, mums ir jānorāda, lai tā atkārtoti ielādētu konfigurāciju.
sudo firewall-cmd --reload
Atkārtojiet šīs sadaļas darbības visos serveros.
rabbitmqadmin
Pārvaldības spraudnis ir aprīkots ar Python rīku, rabbitmqadmin
ko var viegli instalēt sistēmā, tiklīdz pārvaldības spraudnis ir iespējots.
sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin
Klasterizācijas laikā ir jāizmanto servera resursdatora nosaukumi, lai identificētu serverus. Pēc noklusējuma serveriem nav piešķirts DNS ieraksts, un savienojums neizdosies. Lai to ātri pārvarētu, pievienojiet /etc/hosts
failam galveno un spoguļresursa nosaukumu, izmantojot savu iecienītāko redaktoru.
Piemēram, jūsu galvenā saimniekdatora fails var izskatīties šādi. Ievērojiet pēdējos divus ierakstus, kas ļauj serveriem identificēt viens otru pēc resursdatora nosaukuma. Noteikti nomainiet IP adreses uz savām.
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
Importēšanas priekšnoteikums, lai mezgli varētu pievienoties viens otram, ir tas, ka visu mezglu Erlang sīkfails ir identisks. Pēc noklusējuma katram mezglam tiks piešķirts unikāls Erlang sīkfails, tāpēc tas ir jāpārkonfigurē visos mezglos.
Šī komanda iestatīs Erlang sīkfailu uz " WE<3COOKIES
", taču varat to mainīt pēc saviem ieskatiem. Dariet to visos serveros.
sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"
Restartējiet RabbitMQ visos serveros, lai pārliecinātos, ka Erlang sīkfails ir pareizi ielādēts.
sudo systemctl restart rabbitmq-server.service
Izpildiet šādas komandas visos serveros, izņemot galvenajā serverī. Tas ļaus mezgliem pievienoties galvenajam serverim un izveidot kopu.
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app
Pārbaudiet, vai mezgli ir pievienojušies klasterim, izpildot šo komandu.
sudo rabbitmqctl cluster_status
Visas jūsu mezgliem parādīsies nodes
un running_nodes
sadaļā produkciju. No šī brīža jums vairs nav jāatkārto darbības katrā serverī, konfigurācija tiks automātiski atspoguļota citos mezglos.
Tagad, kad mums ir RabbitMQ mezglu kopa, mēs varam to izmantot, lai izveidotu augstas pieejamības rindas un apmaiņu, iestatot jaunu politiku. Šo politiku var pievienot, izmantojot RabbitMQ pārvaldības konsoli vai komandrindas saskarni.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
Nākamajā sarakstā ir paskaidrots, ko nozīmē katra komandas daļa.
-p "/"
: izmantojiet šo politiku "/"
vhost (pēc instalēšanas noklusējuma)--priority 1
: secība, kādā piemērojamas politikas --apply-to "all"
: Var būt "queues"
, "exchanges"
vai"all"
ha
: nosaukums, ko piešķiram savai politikai ".*"
: regulārā izteiksme, kas tiek izmantota, lai izlemtu, kurām rindām vai apmaiņām šī politika tiek piemērota. ".*"
piestāvēs jebkam'{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
: politikas JSON attēlojums. Šajā dokumentā ir aprakstīts, ka mēs vēlamies - tieši 2 mezglus, uz kuriem dati tiek automātiski sinhronizētiĪsāk sakot, šī politika nodrošinās, ka mums vienmēr būs 2 datu kopijas rindā vai apmaiņā, ja vien mums ir izveidoti un darbojas vismaz 2 mezgli. Ja jums ir vairāk mezglu, varat palielināt vērtību ha-params
. Ieteicams N/2 + 1
mezglu kvorums ( ). Ja jums ir vairāk datu kopiju, palielināsies diska, i/o un tīkla lietojums, kā rezultātā var pasliktināties veiktspēja.
Ja vēlaties atspoguļot datus visos klastera mezglos, varat izmantot šo JSON dokumentu.
'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'
Ja vēlaties atspoguļot datus tikai noteiktos mezglos (piemēram: node-1
un node-2
), varat izmantot tālāk norādīto.
'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'
Varat mainīt regulāro izteiksmi, lai dažādām rindām piešķirtu dažādas politikas. Pieņemsim, ka mums ir šādi trīs mezgli:
Pēc tam mēs varam izveidot divas politikas, kuru rezultātā rindas ar nosaukumu, kas sākas ar "klients", tiks atspoguļotas rabbit@client-ha
mezglā, un visas rindas, kuru nosaukums sākas ar "produkts", tiks atspoguļotas rabbit@product-ha
mezglā.
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"}
Šeit ir neliela piezīme: ekskluzīvas rindas nekad netiek atspoguļotas vai noturīgas pakalpojumā RabbitMQ, pat ja šī politika atbilstu šādām rindām. Ekskluzīvas rindas tiek automātiski iznīcinātas, tiklīdz klients atvienojas, un tādēļ nebūtu lietderīgi to replicēt citā serverī. Ja serveris neizdosies, klients atvienotos no tā un rinda tiktu automātiski iznīcināta. Tiks iznīcināti arī spoguļattēli.
Lai pārbaudītu grupēto iestatīšanu, mēs varam izveidot jaunu rindu, izmantojot komandrindas interfeisu, izmantojot pārvaldības konsoli.
sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true
Tas izveidos ilgstošu rindu noklusējuma /
vhost ar nosaukumu my-ha-queue
.
Palaidiet šo komandu un izvadā pārbaudiet, vai rindai ir piešķirta mūsu “ha” politika un vai galvenajā un spoguļmezglā ir pid.
sudo rabbitmqctl list_queues name policy state pid slave_pids
Tagad mēs varam publicēt ziņojumu rindā no galvenā mezgla un apturēt RabbitMQ galvenajā mezglā.
sudo rabbitmqadmin -u user_name -p password publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown
Tagad iegūstiet to atpakaļ, izveidojot savienojumu ar spoguļa mezglu.
sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue
Visbeidzot, mēs varam restartēt mūsu galveno mezglu.
sudo systemctl start rabbitmq-server.service
Kā minēts iepriekš, RabbitMQ automātiski izveido viesa lietotāju ar noklusējuma viesa paroli. Būtu slikta prakse atstāt šo noklusējuma lietotāju publiski atklātā sistēmā.
sudo rabbitmqctl delete_user guest
Vai izmantojat citu sistēmu? Plesk ir patentēts tīmekļa mitinātāja vadības panelis, kas ļauj lietotājiem administrēt savas personīgās un/vai klientu vietnes, datu bāzes
Squid ir populāra bezmaksas Linux programma, kas ļauj izveidot pāradresācijas tīmekļa starpniekserveri. Šajā rokasgrāmatā jūs redzēsit, kā instalēt Squid uz CentOS, lai jūs pārvērstu
Ievads Lighttpd ir Apache dakša, kuras mērķis ir daudz mazāk resursietilpīgs. Tas ir viegls, tāpēc arī tā nosaukums ir diezgan vienkārši lietojams. Instalēšana
VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot
Icinga2 ir spēcīga uzraudzības sistēma, un, ja to izmanto galvenā klienta modelī, tā var aizstāt vajadzību pēc NRPE balstītām uzraudzības pārbaudēm. Meistars-klients
Vai izmantojat citu sistēmu? Apache Cassandra ir bezmaksas un atvērtā koda NoSQL datu bāzes pārvaldības sistēma, kas ir izstrādāta, lai nodrošinātu mērogojamību, hig.
Vai izmantojat citu sistēmu? Microweber ir atvērtā koda vilkšanas un nomešanas CMS un tiešsaistes veikals. Microweber pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata jums parādīs
Vai izmantojat citu sistēmu? Mattermost ir atvērtā pirmkoda, pašmitināta alternatīva Slack SAAS ziņojumapmaiņas pakalpojumam. Citiem vārdiem sakot, izmantojot Mattermost, jūs apm
Kas jums būs nepieciešams Vultr VPS ar vismaz 1 GB RAM. SSH piekļuve (ar root/administratora tiesībām). 1. darbība: BungeeCord instalēšana Vispirms vispirms
Plesk vadības panelī ir ļoti jauka Lets Encrypt integrācija. Lets Encrypt ir viens no vienīgajiem SSL nodrošinātājiem, kas pilnībā izsniedz sertifikātus
Lets Encrypt ir sertifikātu iestāde, kas nodrošina SSL sertifikātus bez maksas. cPanel ir izveidojis glītu integrāciju, lai jūs un jūsu klients
Vai izmantojat citu sistēmu? Concrete5 ir atvērtā pirmkoda CMS, kas piedāvā daudzas atšķirīgas un noderīgas funkcijas, lai palīdzētu redaktoriem viegli izveidot saturu.
Vai izmantojat citu sistēmu? Pārskatīšanas padome ir bezmaksas atvērtā pirmkoda rīks pirmkoda, dokumentācijas, attēlu un daudz ko citu pārskatīšanai. Tā ir tīmekļa programmatūra
Šajā rokasgrāmatā jūs uzzināsit, kā iestatīt HTTP autentifikāciju Nginx tīmekļa serverim, kas darbojas operētājsistēmā CentOS 7. Prasības Lai sāktu darbu, jums būs nepieciešams
YOURLS (Your Own URL Shortener) ir atvērtā koda URL saīsināšanas un datu analīzes lietojumprogramma. Šajā rakstā mēs apskatīsim instalēšanas procesu
Vai izmantojat citu sistēmu? Ievads ArangoDB ir atvērtā koda NoSQL datu bāze ar elastīgu datu modeli dokumentiem, grafikiem un atslēgu vērtībām. Tas ir
Ievads /etc/ direktorijam ir izšķiroša nozīme Linux sistēmas darbībā. Iemesls tam ir gandrīz visas sistēmas konfigurācijas
Daudzi sistēmu administratori pārvalda lielu daudzumu serveru. Ja failiem ir jāpiekļūst dažādos serveros, piesakieties katrā atsevišķi apm
Šajā apmācībā tiks apskatīts Half Life 2 spēļu servera instalēšanas process sistēmā CentOS 6. 1. darbība: priekšnosacījumu instalēšana Lai iestatītu ou
Laravel GitScrum jeb GitScrum ir atvērtā pirmkoda produktivitātes rīks, kas izstrādāts, lai palīdzētu izstrādātāju komandām ieviest Scrum metodoloģiju līdzīgā veidā.
Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.
Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.
Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.
Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.
Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…
Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.
Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.
Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.
Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.
Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk