Sails.js เป็นเฟรมเวิร์ก Javascript ที่มีประสิทธิภาพซึ่งทำให้ง่ายต่อการสร้างแอปพลิเคชัน Node.js ระดับองค์กร มันคล้ายกับสถาปัตยกรรม MVC ของเฟรมเวิร์กอย่าง Ruby on Rails แต่ด้วยการสนับสนุนที่ได้รับการปรับปรุงสำหรับรูปแบบการพัฒนาเว็บที่ทันสมัยที่เน้นข้อมูลมากขึ้น นอกจากนี้ Sails.js ยังเข้ากันได้กับเทคโนโลยีฟรอนต์เอนด์ที่หลากหลาย รวมถึง Angular, React, iOS, Android และ Windows Phone ทำให้เหมาะสำหรับการพัฒนาเว็บแอปพลิเคชันที่ซับซ้อนซึ่งต้องทำงานบนหลายแพลตฟอร์ม ด้วยคุณสมบัติที่แข็งแกร่งและ API ที่ใช้งานง่าย Sails.js เป็นเครื่องมือที่สมบูรณ์แบบสำหรับการสร้างแอปพลิเคชัน Node.js คุณภาพสูง
ในบทช่วยสอนต่อไปนี้ คุณจะได้เรียนรู้วิธีติดตั้ง Sails.js บน Rocky Linux 9 และเข้าถึงอินเทอร์เฟซบนเว็บโดยการติดตั้งและกำหนดค่าการตั้งค่าพร็อกซีย้อนกลับ Nginx.
สารบัญ
ติดตั้งแพ็คเกจที่จำเป็น
งานแรกคือการตรวจสอบหรือติดตั้งแพ็คเกจต่อไปนี้โดยรันคำสั่งต่อไปนี้
sudo dnf install curl gcc-c++ make -y
เมื่อติดตั้งการพึ่งพาแล้ว คุณจะต้องติดตั้ง Node.js ด้วย
บทช่วยสอนจะติดตั้งเวอร์ชันเสถียรล่าสุดของ NPM แต่คุณสามารถเปลี่ยนเป็นเวอร์ชันอื่นที่ยังคงรองรับได้
ขั้นแรก นำเข้าที่เก็บ Node.js โดยใช้คำสั่งเทอร์มินัลต่อไปนี้
curl -fsSL https://rpm.nodesource.com/setup_current.x | sudo bash -
ข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันปัจจุบันสามารถพบได้โดยไปที่ โหนดซอร์ส
ถัดไป ติดตั้ง Node.js
sudo dnf install nodejs -y
ติดตั้ง Sails.js
ส่วนถัดไปของการติดตั้งจะใช้ NPM เพื่อติดตั้ง Sails.js เมื่อต้องการทำเช่นนี้ ใช้คำสั่งต่อไปนี้
sudo npm -g install sails
สุดท้าย ตรวจสอบให้แน่ใจว่า NPM ของคุณเป็นปัจจุบันโดยใช้คำสั่งต่อไปนี้ นี่เป็นสิ่งสำคัญ อย่าข้าม
sudo npm install npm@latest -g
เมื่อติดตั้ง Sails.js แล้ว ขั้นตอนต่อไปคือการสร้างโปรเจ็กต์ใหม่ที่คุณสามารถตั้งชื่ออะไรก็ได้ตามใจชอบ แต่จะเรียกว่า “เทสแอพ” สำหรับการกวดวิชา
ขั้นแรก ให้สร้างไดเร็กทอรีซึ่งสามารถอยู่ที่ใดก็ได้ เพียงสังเกตตำแหน่งที่สมบูรณ์สำหรับบริการ systemd ในภายหลัง บทแนะนำจะใช้ไดเร็กทอรี www
sudo mkdir -p /var/www/ && cd /var/www/
สร้าง “เทสแอพ” โดยใช้คำสั่งต่อไปนี้
sudo sails new testapp
ระบบจะขอให้เลือกเทมเพลตสำหรับแอปพลิเคชัน Sails ของคุณ
ตัวอย่าง:
พิมพ์ฮิต และกดปุ่ม ใส่รหัส เพื่อดำเนินการต่อและเสร็จสิ้น “เทสแอพ” การสร้าง
ตัวอย่าง:
ถัดไป นำทางและเปิด “เทสแอพ” เพื่อทดสอบและตรวจสอบ
cd testapp && sudo sails lift
ตัวอย่างผลลัพธ์:
หากต้องการออก ให้ใช้ (CTRL+C) คำสั่ง
สร้างไฟล์บริการ Systemd สำหรับ Sails.js
ในการมีและจัดการบริการ systemd สำหรับ Sails.js คุณต้องสร้างไฟล์บริการ systemd
สร้างไฟล์บริการโดยใช้คำสั่งต่อไปนี้
sudo nano /lib/systemd/system/sails.service
ถัดไป คัดลอกและวางสิ่งต่อไปนี้
[Unit]
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/var/www/testapp
ExecStart=/usr/bin/sails lift
Restart=on-failure
[Install]
WantedBy=multi-user.target
ตัวอย่าง:
หมายเหตุ หากคุณวางตำแหน่งไดเร็กทอรี Sail.js ในตำแหน่งอื่น ให้เปลี่ยน “WorkingDirectory=/var/www/testapp” เส้นทางในบริการ systemd
บันทึกไฟล์ (CTRL+O), แล้วออก (CTLR+X).
ถัดไป โหลด systemd daemon อีกครั้ง
sudo systemctl daemon-reload
ถัดไป เริ่มบริการ Sails.js และเปิดใช้งานเพื่อเริ่มต้นเมื่อระบบรีบูต:
sudo systemctl enable sails --now
ตรวจสอบสถานะของบริการ Sails.js ด้วยคำสั่งต่อไปนี้
systemctl status sails
ตัวอย่างผลลัพธ์:
ติดตั้งและกำหนดค่า Reverse Proxy
ติดตั้ง Nginx
บทช่วยสอนนี้จะใช้ Nginx เป็นพร็อกซีย้อนกลับสำหรับการใช้ Sails สามารถใช้ reverse proxy อื่นๆ ได้ อย่างไรก็ตาม Nginx นั้นตรงไปตรงมาและเชื่อถือได้ในด้านความปลอดภัยและประสิทธิภาพมากกว่าตัวเลือกอื่นๆ ส่วนใหญ่
ขั้นแรก ติดตั้งเวอร์ชัน Nginx เริ่มต้นที่มีอยู่ใน Rocky Linux 9
sudo dnf install nginx -y
ถัดไป ตรวจสอบการสร้างเวอร์ชันและหากการติดตั้งสำเร็จ
nginx -v
ก่อนที่คุณจะดำเนินการต่อ คุณต้องเริ่มบริการ Nginx
sudo systemctl enable nginx --now
ถัดไป ตรวจสอบสถานะเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด
systemctl status nginx
ตัวอย่างผลลัพธ์หากทั้งหมดทำงานอย่างถูกต้อง:
กำหนดค่า Nginx เป็น Reverse Proxy
ถัดไป สร้างบล็อกเซิร์ฟเวอร์ (โฮสต์เสมือน) สำหรับแอปพลิเคชัน Sails สามารถทำได้ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ
ตัวอย่าง:
sudo nano /etc/nginx/conf.d/sails.conf
ตอนนี้คัดลอกและวางสิ่งต่อไปนี้ด้วยการแก้ไข “ตัวอย่าง.com” โดเมนของคุณเอง
server {
listen 80;
server_name sails.example.com;
location / {
proxy_pass http://localhost:1337/;
proxy_set_header Host $host;
proxy_buffering off;
}
}
บันทึกไฟล์ (CTRL+O), แล้วออก (CTRL+X).
ถัดไป ทดสอบว่าไฟล์การกำหนดค่าใช้งานได้และไม่มีข้อผิดพลาด
sudo nginx -t
ตัวอย่างผลลัพธ์หากไม่มีข้อผิดพลาด:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
เริ่มบริการใหม่เมื่อ Nginx ส่งคืนสถานะตกลงระหว่างการทดสอบแบบแห้ง
sudo systemctl restart nginx
กำหนดค่ากฎไฟร์วอลล์D
ไม่มีการตั้งค่ากฎไฟร์วอลล์เป็นพอร์ตมาตรฐาน 80 หรือ 443 พอร์ตเมื่อติดตั้ง Nginx ก่อนที่คุณจะดำเนินการต่อ คุณควรตั้งกฎต่อไปนี้ ซึ่งจะขึ้นอยู่กับพอร์ตที่คุณจะใช้ แต่ตัวเลือกทั้งหมดจะแสดงอยู่ในรายการ
เปิดพอร์ต 80 หรือ HTTP:
sudo firewall-cmd --permanent --zone=public --add-service=http
เปิดพอร์ต 443 หรือ HTTPS:
sudo firewall-cmd --permanent --zone=public --add-service=https
โหลดไฟร์วอลล์ใหม่เพื่อให้การเปลี่ยนแปลงมีผล
sudo firewall-cmd --reload
โปรดทราบว่าคุณสามารถตั้งค่า HTTPS ในภายหลังในบทช่วยสอนได้หากคุณไม่แน่ใจ
เข้าถึง Sails.js เว็บอินเตอร์เฟส
เมื่อคุณติดตั้งและกำหนดค่า sails.js และ Nginx เป็น reverse proxy สำเร็จแล้ว คุณสามารถเปิดแอปพลิเคชัน Sails.js ได้โดยไปที่โดเมนที่คุณระบุโดยเปิดอินเทอร์เน็ตเบราว์เซอร์ที่คุณโปรดปราน แล้วพิมพ์ข้อความต่อไปนี้
http://salis.example.com
หากสำเร็จ คุณควรเห็นหน้า Landing Page เริ่มต้นของ Sails.js
ตัวอย่าง:
ขอแสดงความยินดี คุณติดตั้ง Sails.js สำเร็จแล้ว
รักษาความปลอดภัย Nginx ด้วย Let's Encrypt SSL ฟรีใบรับรอง
ตามหลักการแล้ว คุณต้องการเรียกใช้เว็บเซิร์ฟเวอร์ Apache บน HTTPS โดยใช้ใบรับรอง SSL วิธีที่ดีที่สุดในการทำเช่นนี้คือการใช้ Let's Encrypt ซึ่งเป็นผู้ออกใบรับรองแบบเปิดฟรี อัตโนมัติ และดำเนินการโดย Internet Security Research Group (ISRG) ที่ไม่แสวงหากำไร
Rocky Linux 9 เป็นหนึ่งในไม่กี่รุ่นที่ไม่มี Certbot พร้อม DNF อย่างไรก็ตาม คุณสามารถติดตั้ง snap เพื่อจัดการสิ่งนี้ได้จนกว่า EPEL/EPEL Next 9 จะตามทัน
ขั้นแรก ติดตั้ง snapd
sudo dnf install snapd -y
เมื่อติดตั้งแล้ว ให้เปิดใช้งานทันทีและเมื่อเริ่มต้นระบบเพื่อตรวจสอบการอัปเดต
sudo systemctl enable snapd --now
ถัดไป ติดตั้ง snap core เพื่อให้ครอบคลุมการพึ่งพาทั้งหมดที่จำเป็นสำหรับแพ็คเกจ snap
sudo snap install core
สร้าง symlink สำหรับโฟลเดอร์ snapd
sudo ln -s /var/lib/snapd/snap /snap
ติดตั้งแพ็คเกจ Certbot snap
sudo snap install --classic certbot
สุดท้าย สร้าง symlink อื่นสำหรับ certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
เมื่อติดตั้งแล้ว ให้รันคำสั่งต่อไปนี้เพื่อเริ่มสร้างใบรับรองของคุณ:
sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
หรือใช้คำสั่งต่อไปนี้และทำตามคำแนะนำหากสามารถเข้าถึงได้มากขึ้น
sudo certbot certonly --nginx
การตั้งค่าที่เหมาะสมที่สุดนี้รวมถึงการบังคับเปลี่ยนเส้นทาง HTTPS 301, ส่วนหัว Strict-Transport-Security และ OCSP Stapling เพียงตรวจสอบให้แน่ใจว่าได้ปรับเปลี่ยนอีเมลและชื่อโดเมนตามความต้องการของคุณ
ตอนนี้ URL ของคุณจะเป็น HTTPS://sails.example.com แทน HTTP://sails.example.com.
หรือคุณสามารถตั้งค่างาน cron เพื่อต่ออายุใบรับรองโดยอัตโนมัติ Certbot เสนอสคริปต์ที่ทำงานโดยอัตโนมัติ และคุณสามารถทดสอบก่อนเพื่อให้แน่ใจว่าทุกอย่างทำงานโดยดำเนินการแบบแห้ง
sudo certbot renew --dry-run
ถัดไปใช้ systemctl-ตัวจับเวลา เพื่อยืนยันว่ามีงาน cron กำลังทำงานเพื่อตรวจสอบและต่ออายุใบรับรองของคุณ
systemctl list-timers
จะมีการจับเวลาเพื่อตรวจสอบและต่ออายุใบรับรองก่อนที่จะหมดอายุ คุณจึงไม่ต้องกังวลอีก
ความคิดเห็นและข้อสรุป
หากคุณกำลังมองหาเฟรมเวิร์ก Javascript ที่ทรงพลังและใช้งานง่าย ที่จะช่วยให้คุณสร้างเว็บแอปพลิเคชันที่กำหนดเองได้อย่างรวดเร็ว Sails.js เป็นตัวเลือกที่ยอดเยี่ยมในการพิจารณา ด้วยสถาปัตยกรรม MVC และความเข้ากันได้กับเฟรมเวิร์กส่วนหน้ายอดนิยมอื่น ๆ แน่นอนว่าจะทำให้กระบวนการพัฒนาของคุณง่ายขึ้นและเร็วขึ้น