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

วิธีติดตั้งเว็บเซิร์ฟเวอร์ 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

  1. Nginx เต็ม – ซึ่งจะเปิดทั้งพอร์ต 80 และ 443 (สำหรับการเข้ารหัส SSL/TLS)
  2. Nginx HTTP – เปิดเฉพาะพอร์ต 80 (สำหรับการเข้าชมเว็บที่ไม่ได้เข้ารหัส)
  3. 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 เพื่อให้บริการเนื้อหาของโดเมนของคุณ ข้อเสนอแนะของคุณยินดีต้อนรับ