ค้นหาเว็บไซต์

วิธีโฮสต์เว็บไซต์ด้วย HTTPS โดยใช้แคดดี้บน Linux


เว็บเซิร์ฟเวอร์เป็นแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ออกแบบมาเพื่อประมวลผลคำขอ HTTP ระหว่างไคลเอนต์และเซิร์ฟเวอร์ HTTP เป็นโปรโตคอลเครือข่ายพื้นฐานและใช้กันอย่างแพร่หลาย

Apache HTTP Server มีบทบาทสำคัญในการออกแบบเว็บในปัจจุบัน เพียงแห่งเดียวก็มีส่วนแบ่งการตลาด 37.3% Nginx อยู่ในอันดับที่สองในรายการโดยมีส่วนแบ่งการตลาด 32.4% Microsoft IIS และ LiteSpeed อยู่ที่อันดับ 3 และ 4 โดยมีส่วนแบ่งตลาด 7.8% และ 6.9% ตามลำดับ

เมื่อเร็วๆ นี้ ฉันพบเว็บเซิร์ฟเวอร์ชื่อ แคดดี้ เมื่อฉันพยายามสอบถามเกี่ยวกับฟีเจอร์ของมันและทดสอบใช้งาน ฉันต้องบอกว่ามันน่าทึ่งมาก เว็บเซิร์ฟเวอร์ที่พกพาสะดวกและไม่ต้องการไฟล์คอนฟิกูเรชันใดๆ ฉันคิดว่ามันเป็นโครงการที่เจ๋งมากและอยากจะแบ่งปันกับคุณ เราได้ทดลองใช้ แคดดี้ แล้ว!

แคดดี้คืออะไร?

แคดดี้เป็นอีกทางเลือกหนึ่งของเว็บเซิร์ฟเวอร์ apache ที่กำหนดค่าและใช้งานได้ง่าย Matthew Holt – หัวหน้าโครงการของ Caddy อ้างว่า Caddy เป็นเว็บเซิร์ฟเวอร์ที่ใช้งานทั่วไป โดยอ้างว่าได้รับการออกแบบมาสำหรับมนุษย์ และน่าจะเป็นเพียงแห่งเดียวในประเภทนี้

แคดดี้ เป็นเว็บเซิร์ฟเวอร์แรกเดียวที่สามารถรับและต่ออายุใบรับรอง SSL/TLS โดยอัตโนมัติโดยใช้ Let's Encrypt

คุณสมบัติของแคดดี้

  1. คำขอ HTTP ที่รวดเร็วโดยใช้ HTTP/2
  2. เว็บเซิร์ฟเวอร์ที่มีความสามารถพร้อมการกำหนดค่าน้อยที่สุดและการปรับใช้ที่ไม่ยุ่งยาก
  3. การเข้ารหัส TLS ช่วยให้มั่นใจได้ถึงการเข้ารหัสระหว่างแอปพลิเคชันการสื่อสารและผู้ใช้ผ่านทางอินเทอร์เน็ต คุณสามารถใช้คีย์และใบรับรองของคุณเองได้
  4. ง่ายต่อการปรับใช้/ใช้งาน ไฟล์เดียวเท่านั้นและไม่ต้องพึ่งพาแพลตฟอร์มใดๆ
  5. ไม่จำเป็นต้องติดตั้ง
  6. ปฏิบัติการแบบพกพา
  7. ทำงานบนซีพียู/คอร์หลายตัว
  8. เทคโนโลยี WebSockets ขั้นสูง – เซสชันการสื่อสารเชิงโต้ตอบระหว่างเบราว์เซอร์และเซิร์ฟเวอร์
  9. เอกสาร Markdown ของเซิร์ฟเวอร์ได้ทันที
  10. รองรับ IPv6 ล่าสุดอย่างเต็มที่
  11. สร้างบันทึกในรูปแบบที่กำหนดเอง
  12. ให้บริการ FastCGI, Reverse Proxy, เขียนใหม่และเปลี่ยนเส้นทาง, ล้าง URL, การบีบอัด Gzip, การเรียกดูไดเรกทอรี, โฮสต์เสมือน และส่วนหัว
  13. พร้อมใช้งานสำหรับแพลตฟอร์มที่รู้จักทั้งหมด – Windows, Linux, BSD, Mac, Android

อะไรทำให้แคดดี้แตกต่าง?

  1. แคดดี้ตั้งเป้าที่จะให้บริการเว็บอย่างที่ควรจะเป็นในปี 2020 ไม่ใช่รูปแบบเดิมๆ
  2. มันได้รับการออกแบบมาไม่เพียงแต่เพื่อรองรับคำขอ HTTP เท่านั้น แต่ยังรวมถึงมนุษย์ด้วย
  3. เต็มไปด้วยคุณสมบัติล่าสุด - HTTP/2, IPv6, Markdown, WebSockets, FastCGI, เทมเพลตและคุณสมบัติอื่น ๆ ที่พร้อมใช้งานทันที
  4. เรียกใช้ไฟล์ปฏิบัติการโดยไม่จำเป็นต้องติดตั้ง
  5. เอกสารรายละเอียดพร้อมคำอธิบายทางเทคนิคน้อยที่สุด
  6. พัฒนาขึ้นโดยคำนึงถึงความต้องการและความสะดวกของนักออกแบบ นักพัฒนา และบล็อกเกอร์
  7. รองรับ Virtual Host – กำหนดไซต์ได้มากเท่าที่คุณต้องการ
  8. เหมาะสำหรับคุณ ไม่ว่าเว็บไซต์ของคุณจะเป็นแบบคงที่หรือไดนามิกก็ตาม หากคุณเป็นมนุษย์มันก็เพื่อคุณ
  9. คุณมุ่งเน้นไปที่สิ่งที่จะประสบความสำเร็จและไม่ใช่วิธีการบรรลุเป้าหมาย
  10. ความพร้อมใช้งานของการสนับสนุนสำหรับแพลตฟอร์มส่วนใหญ่ – Windows, Linux, Mac, Android, BSD
  11. โดยปกติแล้ว คุณจะมีไฟล์แคดดี้หนึ่งไฟล์ต่อไซต์
  12. ตั้งค่าภายในเวลาไม่ถึง 1 นาที แม้ว่าคุณจะไม่ค่อยเป็นมิตรกับคอมพิวเตอร์ก็ตาม
สภาพแวดล้อมการทดสอบ

ฉันจะทดสอบบนเซิร์ฟเวอร์ CentOS เช่นเดียวกับเซิร์ฟเวอร์ Debian แต่คำแนะนำเดียวกันนี้ใช้ได้กับ RHEL และ Debian ด้วย การแจกแจงตาม สำหรับเซิร์ฟเวอร์ทั้งสอง ฉันจะใช้โปรแกรมปฏิบัติการ 64 บิต

Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0

การติดตั้ง Caddy Web Server ใน Linux

ไม่ว่าคุณจะอยู่บนแพลตฟอร์มใดและสถาปัตยกรรมใดที่คุณใช้ แคดดี้จัดเตรียมแพ็คเกจไบนารี่ที่พร้อมใช้งาน ซึ่งสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจเริ่มต้นของคุณดังที่แสดง

ติดตั้งแคดดี้ใน Fedora, RedHat, CentOS

เราจะติดตั้งเว็บเซิร์ฟเวอร์ Caddy เวอร์ชันล่าสุดจากพื้นที่เก็บข้อมูล CORP ภายใต้ Fedora หรือ RHEL/CentOS 8

dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

บน RHEL/CentOS 7 ให้ใช้คำสั่งต่อไปนี้

yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

ติดตั้งแคดดี้ใน Debian และ Ubuntu

echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
    | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt update
sudo apt install caddy

เมื่อติดตั้งแคดดี้เว็บเซิร์ฟเวอร์แล้ว คุณสามารถเริ่มต้น เปิดใช้งาน และตรวจสอบสถานะของบริการได้โดยใช้คำสั่ง systemctl ต่อไปนี้

systemctl start caddy
systemctl enable caddy
systemctl status caddy

ตอนนี้เปิดเบราว์เซอร์ของคุณแล้วชี้เบราว์เซอร์ของคุณไปยังที่อยู่ต่อไปนี้ และคุณควรจะเห็นหน้ายินดีต้อนรับแคดดี้

http://Server-IP
OR
http://yourdomain.com

การตั้งค่าโดเมนกับแคดดี้

หากต้องการตั้งค่าโดเมน ขั้นแรก คุณต้องชี้ระเบียน A/AAAA DNS ของโดเมนไปที่เซิร์ฟเวอร์นี้ในแผงควบคุม DNS ของคุณ จากนั้น สร้างไดเรกทอรีรากของเอกสารสำหรับเว็บไซต์ของคุณ "example.com" ใต้โฟลเดอร์ /var/www/html ดังที่แสดง

mkdir /var/www/html/example.com

หากคุณใช้ SELinux คุณจะต้องเปลี่ยนบริบทความปลอดภัยของไฟล์สำหรับเนื้อหาเว็บ

chcon -t httpd_sys_content_t /var/www/html/example.com -R
chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R

ตอนนี้ให้เปิดและแก้ไขไฟล์การกำหนดค่าแคดดี้ที่ /etc/caddy/Caddyfile

vim /etc/caddy/Caddyfile

แทนที่ :80 ด้วยชื่อโดเมนของคุณและเปลี่ยนรากของไซต์เป็น /var/www/html/example.com ตามที่แสดง

โหลดบริการแคดดี้อีกครั้งเพื่อบันทึกการเปลี่ยนแปลงการกำหนดค่า

systemctl reload caddy

ตอนนี้สร้างหน้า HTML ใดก็ได้ (คุณสามารถสร้างหน้าเองได้) และบันทึกหน้านั้นไว้ใต้ไดเร็กทอรีรากของเอกสารสำหรับเว็บไซต์ของคุณ

touch /var/www/html/example.com/index.html

เพิ่มโค้ด Html ตัวอย่างต่อไปนี้ลงในหน้าดัชนีของเว็บไซต์ของคุณ

echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html

ตอนนี้เยี่ยมชมเว็บไซต์ของคุณอีกครั้งเพื่อดูหน้าของคุณ

หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง โดเมนของคุณจะถูกให้บริการผ่านโปรโตคอล HTTPS ซึ่งบ่งชี้ว่าการเชื่อมต่อของคุณปลอดภัย

บทสรุป

หากคุณเป็นมือใหม่และต้องการตั้งค่าเว็บเซิร์ฟเวอร์โดยไม่ทำให้การกำหนดค่ายุ่งยาก เครื่องมือนี้เหมาะสำหรับคุณ แม้ว่าคุณจะเป็นผู้ใช้ที่มีประสบการณ์ซึ่งต้องการเว็บเซิร์ฟเวอร์ที่รวดเร็วและเรียบง่าย Caddy ก็คุ้มค่าที่จะลอง ด้วยการกำหนดค่าเพียงเล็กน้อย คุณยังอาจตั้งค่าการอนุญาตโฟลเดอร์ ควบคุมการตรวจสอบสิทธิ์ หน้าแสดงข้อผิดพลาด Gzip การเปลี่ยนเส้นทาง HTTP และอื่นๆ ได้ หากคุณต้องการตั้งค่าเว็บเซิร์ฟเวอร์ที่ซับซ้อนและขั้นสูงยิ่งขึ้น

อย่าใช้แคดดี้มาแทนที่ Apache หรือ Nginx แคดดี้ไม่ได้ออกแบบมาเพื่อรองรับสภาพแวดล้อมที่มีปริมาณการใช้งานสูง ได้รับการออกแบบมาเพื่อการตั้งค่าเว็บเซิร์ฟเวอร์ที่รวดเร็ว เมื่อคุณกังวลเรื่องความเร็วและความน่าเชื่อถือ

อ้างอิง

คู่มือผู้ใช้ฉบับสมบูรณ์/เอกสารฉบับเต็มของ Caddy Web Server

เราได้นำเอกสารนี้มาซึ่งมีวัตถุประสงค์เพื่อตรวจสอบอย่างรวดเร็วและคำแนะนำในการติดตั้งพร้อมรูปภาพในกรณีที่จำเป็น หากคุณพบข้อดี/ข้อเสียของโครงการหรือข้อเสนอแนะใดๆ คุณสามารถแจ้งให้เราทราบได้ในส่วนความคิดเห็นของเรา

สำหรับฉัน โปรเจ็กต์นี้ยังเด็กเกินไปที่ยังคงทำงานได้ไม่มีที่ติ และดูทรงพลังและมีแนวโน้มดี ข้อดีที่ใหญ่ที่สุดที่ฉันเห็นคือแคดดี้ไม่จำเป็นต้องพกพาไฟล์กำหนดค่าไปทุกที่ มีจุดมุ่งหมายเพื่อมอบสิ่งที่ดีที่สุดของ Nginx, Lighttpd, vagrant และ Websocketd นั่นคือทั้งหมดที่มาจากด้านข้างของฉัน เชื่อมต่อกับ Tecmint ต่อไป ขอชื่นชม