การตั้งค่าโฮสต์เสมือนเบื้องต้น
ตั้งค่าโฮสต์เสมือน (หรือบล็อกเซิร์ฟเวอร์) เพื่อโฮสต์หลายเว็บไซต์บนเซิร์ฟเวอร์เดียวโดยใช้ชื่อโดเมนต่างกัน
การตั้งค่าโฮสต์เสมือนเบื้องต้น เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน
โฮสต์เว็บไซต์หลายแห่ง
ลองนึกภาพว่าคุณมีเซิร์ฟเวอร์ประสิทธิภาพสูงหนึ่งเครื่อง แต่ต้องการโฮสต์เว็บไซต์หลายแห่งที่มีชื่อโดเมนแตกต่างกัน (เช่น myshop.com และ myblog.com)
เซิร์ฟเวอร์เพียงเครื่องเดียวจะรองรับเว็บไซต์เหล่านี้อย่างมีประสิทธิภาพได้อย่างไร โดยไม่ต้องใช้เครื่องแยกสำหรับแต่ละเว็บไซต์
Virtual Hosts คืออะไร
นี่คือจุดที่ Virtual Hosts (Apache) หรือ Server Blocks (Nginx) เข้ามามีบทบาท
- สิ่งเหล่านี้คือหน่วยการกำหนดค่าที่ช่วยให้เว็บเซิร์ฟเวอร์หนึ่งเครื่องโฮสต์ชื่อโดเมนได้หลายชื่อ
- แต่ละโดเมนสามารถมีรากเอกสาร (ตำแหน่งที่จัดเก็บไฟล์) ไฟล์บันทึก และการตั้งค่าเฉพาะของตนเอง
- ช่วยประหยัดทรัพยากรและทำให้การจัดการเซิร์ฟเวอร์ง่ายขึ้น
การตั้งค่า Virtual Host ของ Apache
ใน Apache โดยทั่วไปการกำหนดค่าโฮสต์เสมือนจะจัดเก็บไว้ในไฟล์ .conf ภายในไดเรกทอรีเฉพาะ:
/etc/apache2/sites-available/: มีการกำหนดค่าโฮสต์เสมือนทั้งหมดที่พร้อมใช้งาน/etc/apache2/sites-enabled/: มีลิงก์สัญลักษณ์ไปยังการกำหนดค่าที่เปิดใช้งานอยู่ในปัจจุบัน
เราใช้คำสั่งอย่าง a2ensite เพื่อเปิดใช้งานการกำหนดค่าเหล่านี้
Apache: โฮสต์เสมือนพื้นฐาน
นี่คือตัวอย่างการกำหนดค่าโฮสต์เสมือนของ Apache แบบง่าย ๆ โดยจะสร้างไฟล์นี้ไว้ใน sites-available
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName myfirstsite.com
ServerAlias www.myfirstsite.com
DocumentRoot /var/www/myfirstsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Apache: ขั้นตอนการกำหนดค่า
หากต้องการตั้งค่าโฮสต์เสมือนของ Apache สำหรับ myfirstsite.com:
- สร้างไดเรกทอรีสำหรับไฟล์เว็บไซต์ของคุณ
- สร้างไฟล์กำหนดค่าโฮสต์เสมือน
- เปิดใช้งานเว็บไซต์และโหลด Apache ใหม่
มาดูคำสั่งสำหรับสองขั้นตอนแรกกัน:
sudo mkdir -p /var/www/myfirstsite/html
sudo chown -R $USER:$USER /var/www/myfirstsite/html
sudo nano /etc/apache2/sites-available/myfirstsite.confApache: เปิดใช้งานและโหลดใหม่
หลังจากสร้างและบันทึกไฟล์ .conf แล้ว ให้ใช้คำสั่งเหล่านี้เพื่อเปิดใช้งานไฟล์และใช้การเปลี่ยนแปลง:
sudo a2ensite myfirstsite.conf: สร้างลิงก์สัญลักษณ์ในsites-enabledsudo apache2ctl configtest: ตรวจสอบข้อผิดพลาดทางไวยากรณ์ในการกำหนดค่า Apachesudo systemctl reload apache2: ใช้การกำหนดค่าใหม่โดยไม่ต้องเริ่มเซิร์ฟเวอร์ใหม่
sudo a2ensite myfirstsite.conf
sudo apache2ctl configtest
sudo systemctl reload apache2การตั้งค่าบล็อกเซิร์ฟเวอร์ของ Nginx
Nginx ใช้บล็อกเซิร์ฟเวอร์ ซึ่งมีลักษณะคล้ายกับโฮสต์เสมือนของ Apache มาก และยังใช้โครงสร้างไดเรกทอรีที่คล้ายกันด้วย:
/etc/nginx/sites-available/: จัดเก็บการกำหนดค่าบล็อกเซิร์ฟเวอร์ทั้งหมด/etc/nginx/sites-enabled/: มีลิงก์สัญลักษณ์ไปยังบล็อกเซิร์ฟเวอร์ที่เปิดใช้งานอยู่
แทนที่จะใช้คำสั่งช่วย เราจะสร้างลิงก์สัญลักษณ์ด้วยตนเอง
Nginx: บล็อกเซิร์ฟเวอร์พื้นฐาน
นี่คือตัวอย่างการกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx พื้นฐานสำหรับ mysecondsite.com โดยจะสร้างไฟล์นี้ไว้ใน sites-available
server {
listen 80;
listen [::]:80;
root /var/www/mysecondsite/html;
index index.html index.htm;
server_name mysecondsite.com www.mysecondsite.com;
location / {
try_files $uri $uri/ =404;
}
}Nginx: ขั้นตอนการกำหนดค่า
หากต้องการตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx สำหรับ mysecondsite.com:
- สร้างไดเรกทอรีสำหรับไฟล์เว็บไซต์ของคุณ
- สร้างไฟล์กำหนดค่าบล็อกเซิร์ฟเวอร์
- สร้างลิงก์สัญลักษณ์และโหลด Nginx ใหม่
ต่อไปนี้คือคำสั่งสำหรับสองขั้นตอนแรก:
sudo mkdir -p /var/www/mysecondsite/html
sudo chown -R $USER:$USER /var/www/mysecondsite/html
sudo nano /etc/nginx/sites-available/mysecondsiteNginx: เปิดใช้งานและโหลดใหม่
หลังจากสร้างและบันทึกไฟล์บล็อกเซิร์ฟเวอร์แล้ว ให้ใช้คำสั่งเหล่านี้เพื่อเปิดใช้งานไฟล์และใช้การเปลี่ยนแปลง:
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/: สร้างลิงก์สัญลักษณ์sudo nginx -t: ทดสอบการกำหนดค่า Nginx เพื่อค้นหาข้อผิดพลาดทางไวยากรณ์sudo systemctl reload nginx: ใช้การกำหนดค่าใหม่โดยไม่ต้องเริ่มต้นใหม่
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxตรวจสอบโฮสต์เสมือน
คุณได้เรียนรู้วิธีกำหนดค่าเว็บเซิร์ฟเวอร์ให้โฮสต์หลายเว็บไซต์แล้ว มาตรวจสอบความเข้าใจกัน
สรุป: หลายเว็บไซต์บนเซิร์ฟเวอร์เดียว
ทำได้ดีมาก! คุณได้เรียนรู้พื้นฐานสำคัญของการกำหนดค่าโฮสต์เสมือน (Apache) และบล็อกเซิร์ฟเวอร์ (Nginx) แล้ว
- การกำหนดค่าเหล่านี้ช่วยให้คุณโฮสต์หลายเว็บไซต์บนเซิร์ฟเวอร์เครื่องเดียวได้อย่างมีประสิทธิภาพ
- ตอนนี้คุณทราบวิธีตั้งค่าที่แตกต่างกันสำหรับชื่อโดเมนแต่ละชื่อแล้ว
- นี่เป็นทักษะพื้นฐานที่จำเป็นสำหรับการดูแลระบบเว็บเซิร์ฟเวอร์และการนำหลายแอปพลิเคชันไปใช้งาน
คำถามที่พบบ่อย
บทเรียน “การตั้งค่าโฮสต์เสมือนเบื้องต้น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตั้งค่าโฮสต์เสมือนเบื้องต้น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตั้งค่าโฮสต์เสมือนเบื้องต้น”
ตั้งค่าโฮสต์เสมือน (หรือบล็อกเซิร์ฟเวอร์) เพื่อโฮสต์หลายเว็บไซต์บนเซิร์ฟเวอร์เดียวโดยใช้ชื่อโดเมนต่างกัน คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การตั้งค่าโฮสต์เสมือนเบื้องต้น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม
ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การติดตั้ง Nginx/Apache
- การโฮสต์เว็บไซต์แบบสแตติก
- การตั้งค่าโฮสต์เสมือนเบื้องต้น
- การเปิดใช้ HTTPS ด้วย Let's Encrypt