- - วิธีการติดตั้ง Caddy Web Server บน Linux

วิธีการติดตั้ง Caddy Web Server บน Linux

วันนี้ HTTPS เป็นกุญแจสำคัญเมื่อโฮสต์เว็บไซต์ หากไม่มีข้อมูลดังกล่าวผู้ใช้ของคุณอาจรั่วไหลข้อมูลส่วนบุคคลจากเว็บไซต์ของคุณสู่โลก เพื่อแก้ปัญหานี้ผู้ดูแลเว็บ Linux จำนวนมากได้ใช้เครื่องมือ LetsEncrypt เนื่องจากทำให้ง่ายต่อการสร้างใบรับรอง ยังคงเป็นเรื่องง่ายเหมือน LetsEncrpyt การเปิดใช้งานบน Nginx หรือ Apache บน Linux ยังคงเป็นเรื่องน่าเบื่อ โชคดีที่มีวิธีที่ดีกว่า แนะนำเว็บเซิร์ฟเวอร์ Caddy เป็นเว็บเซิร์ฟเวอร์ที่เปิดใช้งาน HTTPS ตามค่าเริ่มต้น หากคุณเบื่อกับใบรับรอง SSL แคดดี้อาจเป็นสิ่งที่คุณต้องการ

การติดตั้งแคดดี้

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

ในบทช่วยสอนนี้เราจะใช้เซิร์ฟเวอร์ Ubuntu แต่การใช้งานเว็บเซิร์ฟเวอร์ของ Caddy จะทำงานได้ดีบนระบบปฏิบัติการ Linux อื่น ๆ ส่วนใหญ่เช่นกันแม้แต่บนเดสก์ท็อป เพื่อเริ่มต้นให้แน่ใจว่าคุณมี Curl แอพบน Linux PC ของคุณ หากคุณไม่เปิดโปรแกรมค้นหาสถานีผู้จัดการแพ็คเกจเพื่อหา“ ขด” และติดตั้ง

หมายเหตุ: ตรวจสอบว่าคุณมีขดแล้วโดยการเรียกใช้ ขด ในอาคารผู้โดยสาร หากกล่องโต้ตอบ“ ช่วย” ปรากฏขึ้นสำหรับโปรแกรมแสดงว่าคุณมี Curl บนเครื่อง Linux ของคุณ

curl https://getcaddy.com | bash -s personal

เว็บเซิร์ฟเวอร์ Caddy นั้นมีอิสระในการใช้งานส่วนตัว แต่คุณต้องระบุ วางแผนที่จะใช้ Caddy ในการตั้งค่าระดับองค์กรหรือไม่ รันคำสั่งการติดตั้งด้วย:

curl https://getcaddy.com | bash -s commercial

Running Curl จะไปป์ผ่าน Bash และเริ่มกระบวนการติดตั้งโดยอัตโนมัติ โปรแกรมติดตั้งแคดดี้จะใช้เวลาในการดาวน์โหลดเว็บเซิร์ฟเวอร์ไบนารี่และติดตั้ง / usr / local / bin / ไดเรกทอรี หากการติดตั้งสำเร็จคุณจะเห็นข้อความแจ้งว่า "ติดตั้งสำเร็จ"

ณ จุดนี้คุณจะต้องแก้ไขไบนารีแคดดี้ รันคำสั่งต่อไปนี้ในเทอร์มินัลด้วย sudo สิทธิพิเศษ

sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy

การกำหนดค่าแคดดี้

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

ในระบบส่วนใหญ่ผู้ใช้สามารถเข้าสู่บัญชีรูทได้โดยตรงด้วย:

su

บนเซิร์ฟเวอร์ Ubuntu อย่างไรก็ตามบัญชีรูทถูกล็อคเพื่อเหตุผลด้านความปลอดภัย ในการหลีกเลี่ยงปัญหานี้ให้ได้รูทเชลล์ด้วย sudo.

sudo -s

ตอนนี้เรามีการเข้าถึงรูทแล้วสร้างไดเรกทอรีที่จำเป็นสำหรับเซิร์ฟเวอร์ Caddy เพื่อให้ทำงานได้อย่างถูกต้อง

mkdir /etc/caddy
mkdir /etc/ssl/caddy

หมายเหตุ: หากเซิร์ฟเวอร์ของคุณมี / var / www / ไดเรกทอรีข้ามครั้งนี้ mkdir คำสั่ง

mkdir /var/www

จากนั้นสร้าง“ Caddyfile” ใหม่ภายใน / etc / แคดดี้ /.

touch /etc/caddy/Caddyfile

ใช้ chmod คำสั่งอัปเดตการอนุญาตสำหรับโฟลเดอร์ย่อย Caddy ที่อยู่ภายใน / etc / SSL /.

chmod 0770 /etc/ssl/caddy

สุดท้าย chown คน / var / www / ไดเรกทอรี:

chown www-data: /var/www

ไฟล์แคดดี้ Systemd

เซิร์ฟเวอร์ส่วนใหญ่โดยเฉพาะเซิร์ฟเวอร์อูบุนตูก็หนักการใช้ระบบ systemd init อย่างไรก็ตามเนื่องจากเว็บเซิร์ฟเวอร์ติดตั้งผ่านสคริปต์ Bash ไฟล์ systemd จะไม่ปรากฏ แต่เราต้องทำด้วยตัวเอง ใช้ แตะ คำสั่งเพื่อสร้างไฟล์บริการใหม่ที่ว่างเปล่า

touch /lib/systemd/system/caddy.service

เปิดขึ้นมาใหม่ caddy.service ไฟล์และวางรหัสต่อไปนี้ลงในมัน:

[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target

[Service]
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5

User=www-data
Group=www-data
; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

LimitNOFILE=1048576
LimitNPROC=64

PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=full
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

มีรหัสจำนวนมากสำหรับ caddy.service ไฟล์ให้ดีที่สุดเพื่อให้แน่ใจว่าทุกอย่างอยู่ที่นั่น เมื่อคุณแน่ใจแล้วให้บันทึกการเปลี่ยนแปลงโดยกดปุ่ม Ctrl + X การรวมแป้นพิมพ์ ออกจากตัวแก้ไขด้วย Ctrl + X.

systemctl enable caddy.service
systemctl start caddy.service

หลังจากติดตั้ง systemd ทุกอย่างควรพร้อมแล้ว

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

แคดดี้เช่นเดียวกับเว็บเซิร์ฟเวอร์อื่น ๆ ต้องการการกำหนดค่าเล็กน้อยก่อนใช้งาน เริ่มต้นด้วยการสร้างโฟลเดอร์โดเมน:

หมายเหตุ: อย่าลืมเปลี่ยนชื่อ "test-domain.org" เป็นโดเมนของคุณ

mkdir -p /var/www/test-domain.org/

ถัดไปแก้ไขไฟล์ Caddyfile เราสร้างไว้ก่อนหน้านี้

nano /etc/caddy/Caddyfile

วางรหัสต่อไปนี้เพื่อเปิดใช้งานโดเมนใหม่ของคุณ:

my-domain.com {
root /var/www/test-domain.org
}

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

systemctl restart caddy.service
</ p>

ความคิดเห็น