การติดตั้ง Pagekit CMS บน CentOS 7
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
Docker Swarm เปลี่ยนเซิร์ฟเวอร์ส่วนบุคคลของคุณให้เป็นคลัสเตอร์ของคอมพิวเตอร์อำนวยความสะดวกในการปรับขนาดความพร้อมใช้งานสูงและการทำโหลดบาลานซ์ Swarm load-balancer ใช้กลยุทธ์ load-balancing round-robin และสิ่งนี้อาจรบกวนการทำงานที่ถูกต้องของแอพพลิเคชั่น stateful (แบบดั้งเดิม) ซึ่งต้องการเซสชันเหนียวบางรูปแบบเพื่ออนุญาตให้มีการติดตั้งที่มีความพร้อมใช้งานสูง Docker Enterprise Edition รองรับเซสชั่นเหนียว Layer-7 แต่ในคู่มือนี้เราจะมุ่งเน้นไปที่ Docker รุ่นฟรี (CE) ในการใช้งานเซสชันที่ติดหนึบเราจะใช้ Traefik
ในบทช่วยสอนนี้เราจะใช้ Vultr สองอินสแตนซ์ที่มีที่อยู่ IP ส่วนตัว 192.168.0.100 และ 192.168.0.101 ทั้งคู่เป็นโหนดตัวจัดการ Docker Swarm (ซึ่งไม่เหมาะสำหรับการผลิต แต่เพียงพอสำหรับการสอนนี้)
บทช่วยสอนนี้ใช้jwilder/whoami
อิมเมจนักเทียบท่าเป็นแอปพลิเคชันสาธิต คอนเทนเนอร์แบบง่ายนี้จะตอบสนองต่อการเรียกส่วนที่เหลือด้วยชื่อของคอนเทนเนอร์ที่ตอบสนองทำให้ง่ายต่อการทดสอบว่าเซสชันที่ติดหนึบทำงานอยู่หรือไม่ รูปภาพนี้ใช้สำหรับวัตถุประสงค์ในการสาธิตเท่านั้นและจะต้องแทนที่ด้วยรูปภาพของแอปพลิเคชันของคุณเอง whoami-service
มีการกำหนดค่าดังต่อไปนี้:
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
ถ้าเราจะต่อมาปลายทาง REST ที่เราสามารถมองเห็นรอบโรบินดุลการโหลดของหาง Swarm ในที่ทำงานcurl
whoami
http://192.168.0.100/
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
มันไม่มีประโยชน์ที่จะทดสอบสิ่งนี้กับเบราว์เซอร์สมัยใหม่เช่น Chrome หรือ Firefox เพราะมันถูกออกแบบมาเพื่อให้การเชื่อมต่อยังคงอยู่ (เปิด) และตัวโหลดบาลานซ์ของ Docker Swarm จะเปลี่ยนไปที่คอนเทนเนอร์อื่นในแต่ละการเชื่อมต่อใหม่เท่านั้น หากคุณต้องการทดสอบสิ่งนี้ด้วยเบราว์เซอร์คุณจะต้องรออย่างน้อย 30 วินาทีก่อนที่การเชื่อมต่อจะปิดก่อนที่จะรีเฟรชอีกครั้ง
Traefik รองรับหรือไม่โดยเฉพาะกับ Docker Swarm สามารถตรวจจับและลงทะเบียนหรือยกเลิกการลงทะเบียนภาชนะบรรจุได้ทันทีและสื่อสารกับแอพพลิเคชั่นของคุณผ่านเครือข่ายโอเวอร์เลย์ภายใน Traefik ต้องการข้อมูลบางอย่างเกี่ยวกับแอปพลิเคชันของคุณก่อนที่จะสามารถเริ่มจัดการคำขอ ข้อมูลนี้ให้แก่ Traefik โดยการเพิ่มป้ายกำกับในบริการ Swarm ของคุณ
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
รายการด้านล่างอธิบายความหมายของฉลากแต่ละรายการ:
traefik.docker.network
: เครือข่ายโอเวอร์เลย์ Docker ที่ Traefik จะสื่อสารกับบริการของคุณ traefik.port
: พอร์ตที่บริการของคุณกำลังรับฟัง (นี่คือพอร์ตที่เปิดเผยภายในไม่ใช่พอร์ตที่เผยแพร่)traefik.frontend.rule
: PathPrefix:/
ผูกรูทบริบท/
กับบริการนี้traefik.backend.loadbalancer.stickiness
: เปิดใช้งานเซสชันที่ติดหนึบสำหรับบริการนี้ตอนนี้whoami-service
การกำหนดค่าด้วยป้ายกำกับที่ต้องการเราสามารถเพิ่มบริการ Traefik ไปยังฝูง:
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
คำสั่งนี้ทำหลาย ๆ อย่างพร้อมกัน รายการด้านล่างจะอธิบายรายละเอียดเพิ่มเติม:
--name traefik
: ชื่อบริการใหม่ของ Docker คือ traefik
-p8080:80
: เราเผยแพร่พอร์ตของ Traefik 80
ไปยังพอร์ต8080
(พอร์ต80
ถูกใช้โดยเราแล้วwhoami-service
)-p9090:8080
: เราเผยแพร่เว็บอินเตอร์เฟสของ Traefik ไปยังพอร์ต 9090
--mount ...
: เราติดตั้ง Docker Socket ลงในคอนเทนเนอร์เพื่อให้ Traefik สามารถเข้าถึงรันไทม์ของ Docker ของโฮสต์ได้ --global
: เราต้องการคอนเทนเนอร์ Traefik บนแต่ละโหนดของผู้จัดการเพื่อความพร้อมใช้งานสูง --constraint 'node.role == manager'
: เราต้องการให้ Traefik ทำงานบนโหนดผู้จัดการเท่านั้นเนื่องจากโหนดผู้ปฏิบัติงานไม่สามารถให้ข้อมูลที่จำเป็นกับ Traefik ได้ ตัวอย่างเช่นdocker service ls
บนโหนดงานไม่ทำงานดังนั้น Traefik จะไม่สามารถค้นพบว่าบริการใดกำลังทำงานอยู่--network whoaminet
: เชื่อมต่อ Traefik กับเครือข่ายเดียวกันกับเราwhoami-service
ไม่เช่นนั้นจะไม่สามารถเชื่อมต่อได้ ก่อนหน้านี้เราบอก Traefik ให้เชื่อมต่อกับบริการของเราผ่านเครือข่ายนี้พร้อมกับtraefik.docker.network
ฉลากtraefik
: บอกนักเทียบท่าให้ใช้อิมเมจ Trafik docker ล่าสุดสำหรับบริการนี้--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: อาร์กิวเมนต์บรรทัดคำสั่งส่งโดยตรงไปยัง Traefik เพื่อให้สามารถทำงานในโหมด Docker Swarm ( --loglevel=DEBUG
เป็นตัวเลือกที่นี่ แต่น่าสนใจระหว่างการติดตั้งและสำหรับบทช่วยสอนนี้)สิ่งที่เหลืออยู่ที่ต้องทำคือเปิดพอร์ตที่จำเป็นในไฟร์วอลล์ CentOS:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
ทันทีที่ Traefik เริ่มต้นขึ้นคุณจะเห็นในบันทึกที่ Traefik ค้นพบwhoami
ภาชนะทั้งสอง นอกจากนี้ยังแสดงชื่อคุกกี้ซึ่งจะใช้เพื่อจัดการกับเซสชันเหนียว
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"
หากเราขดตัวhttp://192.168.0.100:8080
เราจะเห็นว่า_a49bc
มีการตั้งค่าคุกกี้ใหม่:
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
หากในการโทรครั้งต่อไปเราส่งคุกกี้นี้ไปยัง Traefik เราจะถูกส่งต่อไปยังคอนเทนเนอร์เดียวกันเสมอ:
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
คุกกี้ไม่มีอะไรนอกจากที่อยู่ภายใน (โอเวอร์เลย์) ที่อยู่ IP ของคอนเทนเนอร์ที่ Traefik ควรส่งไปขอ หากคุณเปลี่ยนค่าคุกกี้http://10.0.0.4:8000
เป็นคำขอจะถูกส่งต่อไปยังคอนเทนเนอร์อื่นอย่างมีประสิทธิภาพ หากคุกกี้ไม่เคยถูกส่งไปที่ Traefik อีกครั้งเซสชันที่ติดหนึบจะไม่ทำงานและการร้องขอจะมีความสมดุลระหว่างคอนเทนเนอร์ของแอปพลิเคชันและคอนเทนเนอร์ Traefik
นั่นคือทั้งหมดที่จำเป็นในการตั้งค่า Layer 7 Sticky Sessions ใน Docker CE บน CentOS 7
ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า
TestLink เป็นระบบดำเนินการจัดการทดสอบบนเว็บโอเพ่นซอร์ส ช่วยให้ทีมงานประกันคุณภาพสามารถสร้างและจัดการกรณีทดสอบได้เช่นกัน
FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ
CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม
ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น
ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย
ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์
Introduction LAMP เป็นคำย่อที่ย่อมาจาก Linux, Apache, MySQL และ PHP ซอฟต์แวร์นี้เป็นโซลูชันโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับการติดตั้ง o
Icinga2 เป็นระบบการตรวจสอบที่มีประสิทธิภาพและเมื่อใช้ในโมเดลลูกค้าหลักจะสามารถแทนที่ความต้องการการตรวจสอบที่อิง NRPE ปรมาจารย์
ใช้ระบบที่แตกต่างกันอย่างไร Netdata เป็นดาวรุ่งพุ่งแรงในด้านการติดตามการวัดในระบบแบบเรียลไทม์ เมื่อเปรียบเทียบกับเครื่องมือชนิดเดียวกัน Netdata:
Buildbot เป็นโอเพ่นซอร์สเครื่องมือที่ใช้การรวมอย่างต่อเนื่องของ Python สำหรับการสร้างซอฟต์แวร์การทดสอบและการปรับใช้โดยอัตโนมัติ Buildbot ประกอบด้วยหนึ่งหรือหมอ
ยินดีต้อนรับสู่การกวดวิชา Vultr อื่น ที่นี่คุณจะได้เรียนรู้วิธีการติดตั้งและเรียกใช้เซิร์ฟเวอร์ SAMP คู่มือนี้เขียนขึ้นสำหรับ CentOS 6 ข้อกำหนดเบื้องต้นคุณจะต้อง
แอปพลิเคชั่น dotProject เป็นเครื่องมือการจัดการโครงการแบบโอเพ่นซอร์สบนเว็บ สำหรับตอนนี้มันวางจำหน่ายภายใต้ GPL ดังนั้นคุณสามารถปรับใช้และใช้งานได้บนบริการของคุณ
ใช้ระบบที่แตกต่างกันอย่างไร TaskWarrior เป็นเครื่องมือจัดการเวลาแบบโอเพ่นซอร์สที่เป็นการปรับปรุงแอพพลิเคชั่น Todo.txt และโคลนของมัน เนื่องมาจาก
ใช้ระบบที่แตกต่างกันอย่างไร Selfoss RSS Reader เป็นฟรีและเปิดตัวเองบนเว็บโฮสต์อเนกประสงค์, สตรีมสด, ตอบโต้กับผู้ใช้ได้, ฟีดข่าว (RSS / Atom) reade
ใช้ระบบที่แตกต่างกันอย่างไร Kanboard เป็นซอฟต์แวร์ซอฟต์แวร์การจัดการโครงการโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่ออำนวยความสะดวกและมองเห็นภาพการทำงานเป็นทีม
บทช่วยสอนนี้จะกล่าวถึงกระบวนการติดตั้งเซิร์ฟเวอร์เกม Half Life 2 บนระบบ CentOS 6 ขั้นตอนที่ 1: การติดตั้งข้อกำหนดเบื้องต้นเพื่อตั้งค่า ou
GlusterFS เป็นระบบไฟล์ที่เชื่อมต่อกับเครือข่ายซึ่งช่วยให้คุณแบ่งปันไดรฟ์สองตัวในอุปกรณ์หลายตัวบนเครือข่ายได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้คือ
ใช้ระบบที่แตกต่างกันอย่างไร ในขณะที่การโยกย้ายเว็บไซต์มักจะไม่มีปัญหาบางครั้งก็ยากที่จะโยกย้ายกล่องอีเมล นี่คือ CAS โดยเฉพาะอย่างยิ่ง
PrestaShop เป็นโซลูชันอีคอมเมิร์ซแบบโอเพ่นซอร์สที่ได้รับความนิยม คุณสามารถใช้มันเพื่อสร้างร้านค้าออนไลน์ของคุณเองได้ฟรี ในบทช่วยสอนนี้ฉันจะแสดงให้คุณเห็นว่า
ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน
การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane
ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+
อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ
เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม
13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data
คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true
ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร
ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1
AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน