วิธีติดตั้งเว็บเซิร์ฟเวอร์ Nginx บน Ubuntu 20.04
Nginx เป็นเว็บเซิร์ฟเวอร์โอเพ่นซอร์สที่มีประสิทธิภาพสูงซึ่งมีส่วนแบ่งการตลาดมหาศาลในสภาพแวดล้อมการใช้งานจริง มันเป็นเว็บเซิร์ฟเวอร์ที่มีน้ำหนักเบาและแข็งแกร่งซึ่งส่วนใหญ่ใช้ในการโฮสต์เว็บไซต์ที่มีการเข้าชมสูง
การอ่านที่เกี่ยวข้อง: วิธีติดตั้ง Apache Web Server บน Ubuntu 20.04
ในคู่มือนี้ คุณจะได้เรียนรู้วิธีการติดตั้งเว็บเซิร์ฟเวอร์ Nginx และการกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx (โฮสต์เสมือน) บน Ubuntu 20.04 LTS
ข้อกำหนดเบื้องต้น
ในการเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีอินสแตนซ์ของ Ubuntu 20.04 LTS ที่มีสิทธิ์เข้าถึง SSH และผู้ใช้ Sudo ที่มีสิทธิ์รูท นอกจากนี้ แนะนำให้ใช้การเชื่อมต่ออินเทอร์เน็ตที่เสถียรเพื่อติดตั้งแพ็คเกจ Nginx
การติดตั้ง Nginx บน Ubuntu 20.04
1. ก่อนที่จะติดตั้ง Nginx ให้อัปเดตรายการแพ็คเกจของเซิร์ฟเวอร์ของคุณ
sudo apt update
2. จากนั้นติดตั้ง Nginx โดยเรียกใช้คำสั่ง:
sudo apt install nginx
เมื่อได้รับแจ้งให้ดำเนินการต่อ ให้กด 'Y'
บนแป้นพิมพ์แล้วกด ENTER การติดตั้งจะเสร็จสิ้นภายในไม่กี่วินาที
3. เมื่อติดตั้ง Nginx สำเร็จแล้ว คุณสามารถเริ่มต้นและตรวจสอบได้โดยการเรียกใช้:
sudo systemctl start nginx
sudo systemctl status nginx
ผลลัพธ์ด้านบนแสดงให้เห็นอย่างชัดเจนว่า Nginx กำลังทำงานอยู่
4. หากต้องการตรวจสอบเวอร์ชันของ Nginx ให้เรียกใช้:
sudo dpkg -l nginx
ผลลัพธ์บ่งชี้ว่าเรากำลังใช้งาน Nginx 1.17.10 ซึ่งเป็นเวอร์ชันล่าสุดในขณะที่เขียนบทความนี้
เปิดพอร์ต Nginx บนไฟร์วอลล์ UFW
ตอนนี้คุณได้ติดตั้งและทำงาน Nginx ตามที่คาดไว้แล้ว จำเป็นต้องมีการปรับเปลี่ยนเล็กน้อยเพื่อให้ Nginx เข้าถึงได้ผ่านทางเว็บเบราว์เซอร์ หากคุณใช้ ไฟร์วอลล์ UFW คุณจะต้องอนุญาตโปรไฟล์แอปพลิเคชัน Nginx
มีโปรไฟล์ Nginx 3 โปรไฟล์ที่เกี่ยวข้องกับไฟร์วอลล์ ufw
- Nginx เต็ม – ซึ่งจะเปิดทั้งพอร์ต 80 และ 443 (สำหรับการเข้ารหัส SSL/TLS)
- Nginx HTTP – เปิดเฉพาะพอร์ต 80 (สำหรับการเข้าชมเว็บที่ไม่ได้เข้ารหัส)
- Nginx HTTPS – เปิดเฉพาะพอร์ต 443 (สำหรับการเข้ารหัส SSL/TLS)
5. เริ่มต้นด้วยการเปิดใช้งานไฟร์วอลล์บน Ubuntu 20.04
sudo ufw enable
6. ในตอนนี้ เนื่องจากเราไม่ได้อยู่บนเซิร์ฟเวอร์ที่เข้ารหัส เราจะอนุญาตเฉพาะโปรไฟล์ Nginx HTTP ที่จะอนุญาตการรับส่งข้อมูลบนพอร์ต 80 .
sudo ufw allow 'Nginx HTTP'
7. จากนั้นโหลดไฟร์วอลล์ใหม่เพื่อให้การเปลี่ยนแปลงยังคงอยู่
sudo ufw reload
8. ตอนนี้ให้ตรวจสอบสถานะของไฟร์วอลล์เพื่อตรวจสอบโปรไฟล์ที่ได้รับอนุญาต
sudo ufw status
ทดสอบ Nginx บน Ubuntu 20.04
Nginx ทำงานบนเบราว์เซอร์ตามที่คุณคาดหวังกับเว็บเซิร์ฟเวอร์ใดๆ และวิธีที่แน่นอนที่สุดในการทดสอบว่าทำงานตามที่คาดไว้หรือไม่ก็คือการส่งคำขอผ่านเบราว์เซอร์
9. ไปที่เบราว์เซอร์ของคุณและเรียกดูที่อยู่ IP หรือชื่อโดเมนของเซิร์ฟเวอร์ หากต้องการตรวจสอบ IP ของเซิร์ฟเวอร์ของคุณ ให้รันคำสั่ง ifconfig:
ifconfig
10. หากคุณอยู่บนเซิร์ฟเวอร์คลาวด์ ให้เรียกใช้คำสั่ง curl ด้านล่างเพื่อดึงข้อมูล IP สาธารณะของเซิร์ฟเวอร์
curl ifconfig.me
11. ในช่อง URL ของเบราว์เซอร์ ให้ป้อนที่อยู่ IP หรือชื่อโดเมนของเซิร์ฟเวอร์ของคุณ แล้วกด ENTER
http://server-IP or domain-name
คุณควรได้รับหน้าต้อนรับเริ่มต้นของ Nginx ตามที่แสดง
จัดการกระบวนการ Nginx ใน Ubuntu 20.04
12. หากต้องการหยุดเว็บเซิร์ฟเวอร์ Nginx เพียงเรียกใช้:
sudo systemctl stop nginx
13. หากต้องการให้เว็บเซิร์ฟเวอร์กลับมาทำงานอีกครั้ง ให้ดำเนินการ:
sudo systemctl start nginx
14. หากต้องการเริ่ม Nginx โดยอัตโนมัติขณะบู๊ตหรือรีบูต:
sudo systemctl enable nginx
15. หากคุณต้องการรีสตาร์ทเว็บเซิร์ฟเวอร์ โดยเฉพาะหลังจากทำการเปลี่ยนแปลงไฟล์การกำหนดค่า ให้รัน:
sudo systemctl restart nginx
16. หรือคุณสามารถโหลดซ้ำเพื่อหลีกเลี่ยงการเชื่อมต่อหลุดดังที่แสดง
sudo systemctl reload nginx
การกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx ใน Ubuntu 20.04
หากคุณวางแผนที่จะโฮสต์มากกว่าหนึ่งไซต์บนเซิร์ฟเวอร์ของคุณ ขอแนะนำให้ตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx บล็อกเซิร์ฟเวอร์เทียบเท่ากับโฮสต์เสมือนของ Apache
ตามค่าเริ่มต้น Nginx จัดส่งพร้อมกับบล็อกเซิร์ฟเวอร์เริ่มต้นซึ่งตั้งค่าให้ให้บริการเนื้อหาเว็บที่เส้นทาง /var/www/html
เราจะสร้างบล็อก Nginx แยกต่างหากเพื่อรองรับเนื้อหาของโดเมนของเรา สำหรับคำแนะนำนี้ เราจะใช้โดเมน crazytechgeek.info
.
ในกรณีของคุณ ตรวจสอบให้แน่ใจว่าคุณได้แทนที่สิ่งนี้ด้วยชื่อโดเมนของคุณเอง
17. หากต้องการสร้างไฟล์บล็อกเซิร์ฟเวอร์ ขั้นแรก ให้สร้างไดเร็กทอรีสำหรับโดเมนของคุณดังที่แสดง
sudo mkdir -p /var/www/crazytechgeek.info/html
18. จากนั้น กำหนดความเป็นเจ้าของให้กับไดเร็กทอรีใหม่โดยใช้ตัวแปร $USER
sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
19. ตรวจสอบให้แน่ใจว่าคุณได้กำหนดสิทธิ์ของไดเรกทอรีตามนั้น โดยอนุญาตให้เจ้าของมีสิทธิ์ทั้งหมด (อ่าน เขียน และดำเนินการ) และให้สิทธิ์แก่บุคคลอื่นเฉพาะสิทธิ์ในการอ่านและดำเนินการเท่านั้น
sudo chmod -R 755 /var/www/crazytechgeek.info
20. ภายในไดเร็กทอรีโดเมน สร้างไฟล์ index.html
ที่จะมีเนื้อหาเว็บของโดเมน
sudo vim /var/www/crazytechgeek.info/html/index.html
วางเนื้อหาด้านล่างลงในไฟล์ทดสอบตัวอย่าง
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Bravo! Your server block is working as expected!</h1>
</body>
</html>
บันทึกการเปลี่ยนแปลงและออกจากไฟล์
21. เพื่อให้เว็บเซิร์ฟเวอร์ Nginx ให้บริการเนื้อหาที่คุณเพิ่งเพิ่ม คุณจะต้องสร้างบล็อกเซิร์ฟเวอร์ด้วยคำสั่งที่เหมาะสม ในกรณีนี้ เราได้สร้างบล็อกเซิร์ฟเวอร์ใหม่ที่:
sudo vim /etc/nginx/sites-available/crazytechgeek.info
วางการกำหนดค่าที่แสดง
server {
listen 80;
listen [::]:80;
root /var/www/crazytechgeek.info/html;
index index.html index.htm index.nginx-debian.html;
server_name crazytechgeek.info www.crazytechgeek.info;
location / {
try_files $uri $uri/ =404;
}
}
บันทึกและออก.
22. ตอนนี้เปิดใช้งานไฟล์บล็อกเซิร์ฟเวอร์โดยการเชื่อมโยงไปยังไดเร็กทอรี ที่เปิดใช้งานไซต์ ซึ่งเซิร์ฟเวอร์ Nginx อ่านเมื่อเริ่มต้นระบบ
sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
23. เพื่อให้การเปลี่ยนแปลงมีผล ให้รีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx
sudo systemctl restart nginx
24. เพียงเพื่อให้แน่ใจว่าการกำหนดค่าทั้งหมดเป็นไปตามลำดับ ให้รันคำสั่ง:
nginx -t
หากการกำหนดค่าทั้งหมดเป็นไปตามลำดับ คุณควรได้รับผลลัพธ์ที่แสดงด้านล่าง:
25. เว็บเซิร์ฟเวอร์ Nginx ควรให้บริการเนื้อหาของโดเมนของคุณแล้ว อีกครั้ง ไปที่เบราว์เซอร์ของคุณและเรียกดูโดเมนเซิร์ฟเวอร์ของคุณ
http://domain-name
เนื้อหาที่คุณกำหนดเองในไดเร็กทอรีโดเมนของคุณจะถูกให้บริการตามที่แสดง
ไฟล์การกำหนดค่า Nginx ที่สำคัญ
ก่อนที่เราจะสรุป สิ่งสำคัญคือเราต้องตรวจสอบไฟล์การกำหนดค่าที่สำคัญบางไฟล์ที่เกี่ยวข้องกับ Nginx
ไฟล์การกำหนดค่า Nginx
- /etc/nginx/nginx.conf: นี่คือไฟล์การกำหนดค่าหลัก คุณสามารถแก้ไขการตั้งค่าเพื่อให้ตรงตามความต้องการของเซิร์ฟเวอร์ของคุณได้
- /etc/nginx/sites-available: นี่คือไดเร็กทอรีที่เก็บการกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx จะใช้บล็อกเซิร์ฟเวอร์เฉพาะในกรณีที่ลิงก์ไปยังไดเร็กทอรีที่เปิดใช้งานไซต์
- /etc/nginx/sites-enabled: ไดเรกทอรีประกอบด้วยบล็อกเซิร์ฟเวอร์ Nginx ต่อไซต์ที่เปิดใช้งานแล้ว
ไฟล์บันทึก Nginx
มีไฟล์บันทึกหลักสองไฟล์ที่คุณสามารถใช้เพื่อแก้ไขปัญหาเว็บเซิร์ฟเวอร์ Nginx ของคุณ:
- /var/log/nginx/access.log: วิธีนี้จะบันทึกคำขอทั้งหมดที่ส่งไปยังเว็บเซิร์ฟเวอร์
- /var/log/nginx/error.log: นี่คือไฟล์บันทึกข้อผิดพลาดและบันทึกข้อผิดพลาดทั้งหมดที่ Nginx พบ
บทสรุป
เรามาถึงจุดสิ้นสุดของบทช่วยสอนนี้แล้ว เราได้แสดงวิธีที่คุณสามารถติดตั้ง Nginx บน Ubuntu 20.04 และวิธีตั้งค่าการบล็อกเซิร์ฟเวอร์ Nginx เพื่อให้บริการเนื้อหาของโดเมนของคุณ ข้อเสนอแนะของคุณยินดีต้อนรับ