CyberPanel installeren en configureren op uw CentOS 7-server
Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed gebruikt. Wat thi
Docker Swarm verandert uw individuele servers in een cluster van computers, wat schaalbaarheid, hoge beschikbaarheid en taakverdeling mogelijk maakt. De Swarm load-balancer implementeert een round-robin load-balancing-strategie en dit kan de correcte werking van (legacy) stateful applicaties die een vorm van plakkerige sessies vereisen, nodig hebben om een hoge beschikbaarheid setup met meerdere instanties mogelijk te maken. Docker Enterprise Edition ondersteunt Layer-7 kleverige sessie, maar in deze handleiding zullen we ons concentreren op de gratis (CE) versie van Docker. Om plakkerige sessies te implementeren, gebruiken we Traefik.
In deze zelfstudie gebruiken we twee Vultr-instanties met privé-IP-adressen 192.168.0.100 en 192.168.0.101, beide zijn Docker Swarm-beheerknooppunten (wat niet ideaal is voor productie maar voldoende voor deze zelfstudie).
Deze tutorial gebruikt de jwilder/whoami
docker-afbeelding als demotoepassing. Deze eenvoudige container reageert op een REST-aanroep met de naam van de reagerende container, waardoor het heel gemakkelijk is om te testen of de kleverige sessies werken. Deze afbeelding wordt alleen gebruikt voor demodoeleinden en moet worden vervangen door de afbeelding van uw eigen applicatie. De whoami-service
is als volgt geconfigureerd:
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Als we vervolgens curl
het whoami
REST-eindpunt http://192.168.0.100/
zouden zien, kunnen we de round-robin load-balancing van Docker Swarm aan het werk zien.
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
Het heeft geen zin om dit te testen met moderne browsers zoals Chrome of Firefox omdat ze zijn ontworpen om verbindingen levend (open) te houden en de Docker Swarm-load-balancer pas bij elke nieuwe verbinding naar de andere container overschakelt . Als u dit met een browser wilt testen, moet u ten minste 30 seconden wachten voordat de verbinding wordt verbroken voordat u de pagina opnieuw ververst.
Traefik ondersteunt native Docker Swarm, het kan containers on-the-fly detecteren en registreren of uitschrijven en het communiceert met uw applicatie via het interne overlay-netwerk. Traefik heeft wat informatie over uw aanvraag nodig voordat het aanvragen kan verwerken. Deze informatie wordt aan Traefik verstrekt door labels toe te voegen aan uw Swarm-service.
sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service
De onderstaande lijst beschrijft wat elk label betekent:
traefik.docker.network
: Het Docker-overlay-netwerk waarover Traefik met uw service zal communiceren traefik.port
: De poort waarop uw service luistert (dit is de intern blootgestelde poort, niet de gepubliceerde poort)traefik.frontend.rule
: PathPrefix:/
bindt de context root /
aan deze service.traefik.backend.loadbalancer.stickiness
: Maakt sticky-sessies mogelijk voor deze serviceNu het whoami-service
is geconfigureerd met de vereiste labels, kunnen we de Traefik-service aan de zwerm toevoegen:
sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
Deze opdracht doet nogal wat dingen tegelijk. De onderstaande lijst zal meer in detail uitleggen:
--name traefik
: De naam van onze nieuwe Docker-service is traefik
-p8080:80
: We publiceren de poort 80
naar poort van Traefik 8080
(poort 80
wordt al gebruikt door onze whoami-service
)-p9090:8080
: We publiceren Traefik's eigen webinterface naar poort 9090
--mount ...
: We monteren de Docker Socket in de container zodat Traefik toegang heeft tot de Docker-runtime van de host --global
: We willen Traefik-containers op elk manager-knooppunt om redenen van hoge beschikbaarheid --constraint 'node.role == manager'
: We willen alleen dat Traefik op manager-nodes draait omdat worker-nodes Traefik niet de informatie kunnen geven die het nodig heeft. Bijvoorbeeld, docker service ls
een werknemer knooppunt niet werkt, dus Traefik zou niet eens in staat om te ontdekken welke services worden uitgevoerd--network whoaminet
: Verbindt Traefik met hetzelfde netwerk als het onze whoami-service
, anders kunnen ze geen verbinding maken. We hebben Traefik eerder gezegd om via dit netwerk met het traefik.docker.network
label verbinding te maken met onze servicetraefik
: Vertel docker om de nieuwste Traefik-docker-image te gebruiken voor deze service--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: Opdrachtregelargumenten worden rechtstreeks aan Traefik doorgegeven om het in de zwermmodus Docker uit te voeren ( --loglevel=DEBUG
is hier optioneel maar interessant tijdens de installatie en voor deze zelfstudie)Het enige dat u hoeft te doen, is de benodigde poorten in de CentOS-firewall openen:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
Zodra Traefik opstart, kun je in de logs zien dat Traefik de twee whoami
containers ontdekt . Het voert ook de cookienaam uit die het zal gebruiken om de kleverige sessie af te handelen:
time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"
Als we omkrullen, kunnen http://192.168.0.100:8080
we zien dat er een nieuwe cookie _a49bc
is geplaatst:
curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
* Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact
Als we bij volgende oproepen deze cookie naar Traefik sturen, worden we altijd doorgestuurd naar dezelfde container:
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
De cookie bevat niets anders dan het interne (overlay) IP-adres van de container waarnaar Traefik moet sturen om op te vragen. Als u de cookiewaarde wijzigt in, http://10.0.0.4:8000
wordt het verzoek effectief doorgestuurd naar de andere container. Als de cookie nooit opnieuw zou worden verzonden naar Traefik, zal de kleverige sessie niet werken en zullen de verzoeken worden uitgebalanceerd tussen de containers van de applicatie en de Traefik-containers.
Dat is alles wat nodig is om Layer 7 Sticky Sessions in Docker CE op CentOS 7 in te stellen.
Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed gebruikt. Wat thi
Introductie Sensu is een gratis en open source monitoringoplossing die kan worden gebruikt om server, applicatie en verschillende systeemservices te monitoren. Sensu i
Het gebruik van een sudo-gebruiker om toegang te krijgen tot een server en opdrachten uit te voeren op rootniveau is een veel voorkomende praktijk onder Linux en Unix-systeembeheerder. Het gebruik van een sud
Gebruikt u een ander systeem? RTMP is geweldig voor het weergeven van live inhoud. Wanneer RTMP is gekoppeld aan FFmpeg, kunnen streams worden omgezet in verschillende kwaliteiten. Vultr ik
TaskBoard is een gratis en open source webbeheer voor tijdbeheer. Geïnspireerd door Kanban, kan TaskBoard u helpen bij het bijhouden van dingen die moeten worden gedaan in een
Gebruikt u een ander systeem? Gradle is een gratis en open source toolset voor het automatiseren van builds, gebaseerd op de concepten van Apache Ant en Apache Maven. Gradle biedt
Gebruikt u een ander systeem? In deze handleiding zullen we zien hoe u een FTP-server (ProFTPd) configureert om bestanden over te zetten tussen uw pc en uw server.
Gebruikt u een ander systeem? Netdata is een rijzende ster op het gebied van realtime monitoring van systeemstatistieken. Vergeleken met andere tools van dezelfde soort, Netdata:
Gebruikt u een ander systeem? Apache Cassandra is een gratis en open source NoSQL-databasebeheersysteem dat is ontworpen om schaalbaarheid te bieden
In deze tutorial leer je goed hoe je een Just Cause 2 multiplayer-server opzet. Vereisten Zorg ervoor dat het systeem volledig is bijgewerkt voordat we beginnen
Gebruikt u een ander systeem? In deze tutorial leg ik uit hoe je een Starbound-server instelt op CentOS 7. Vereisten Je moet dit spel op je hebben
ZNC is een gratis en open-source IRC-uitsmijter die permanent verbonden blijft met een netwerk, zodat klanten berichten kunnen ontvangen die worden verzonden terwijl ze offline zijn. Thi
Django is een populair Python-framework voor het schrijven van webapplicaties. Met Django kun je sneller applicaties bouwen, zonder het wiel opnieuw uit te vinden. Als je wilt
MantisBT, of Mantis Bug Tracker, is een open source issue tracker geschreven in PHP. MantisBT is uitgebalanceerd tussen gebruiksgemak en functionaliteit, mits
Gebruikt u een ander systeem? Elgg is een open source engine voor sociaal netwerken waarmee sociale omgevingen kunnen worden gecreëerd, zoals sociale campusnetwerken
Froxlor is een open source, gratis, lichtgewicht en toch krachtig serverbeheerpaneel dat geweldig is voor het opzetten en beheren van webhostingservices. Thi
Gebruikt u een ander systeem? Alfresco Community Edition is een open source-versie van de Alfresco Content Services. Het is geschreven in Java en gebruikt PostgreSQL t
Vtiger CRM is een populaire applicatie voor klantrelatiebeheer die bedrijven kan helpen hun verkoop te laten groeien, klantenservice te bieden en de winst te vergroten. ik
Wat je nodig hebt Een Vultr VPS met minimaal 1 GB RAM. SSH-toegang (met root- / beheerdersrechten). Stap 1: BungeeCord installeren Eerste dingen eerst
MaraDNS is een lichtgewicht maar robuust open source DNS-serverprogramma. Vergeleken met andere applicaties van dezelfde soort, zoals ISC BIND, PowerDNS en djbdns
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.