NGINX

#HelloInfra #HelloErmine #HelloWorld2021

Web server คือ?

Web Server เป็น Software ที่คอยเก็บเอกสารต่าง ๆ เช่น HTML, CSS, Javascript เพื่อตอบสนองต่อ Client ที่ Request มาขอไฟล์ไปแสดงผลในรูปแบบของ World Wide Web (WWW) หน้าที่หลักของ Web server คือแสดงผลข้อมูลและเนื้อหา Website ด้วยการจัดเก็บ, ประมวลผล และนำเสนอออกมาแก่ User ในลักษณะ Webpage นั่นเอง

Apache

Apache หรือ Apache Webserver เป็นซอฟต์แวร์เซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลาย Apache พัฒนาและดูแลโดย Apache Software Foundation ซึ่งเป็นซอฟต์แวร์โอเพนซอร์สที่สามารถใช้งานได้ฟรี ซึ่งรวดเร็วเชื่อถือได้และปลอดภัย สามารถปรับแต่งได้เพื่อตอบสนองความต้องการของสภาพแวดล้อมที่หลากหลาย

NGINX

NGINX มาจากคำว่า Engine-X ถูกคิดค้นขึ้นมาเพื่อทลายข้อจำกัดของการใช้งานของ Apache Webserver เพื่อให้สามารถที่จะรองรับการทำงานได้มากขึ้น และนอกจากนี้แล้วตัว Nginx ยังมีโมดูลเสริมเข้ามาที่เพียงพอต่อการใช้งานทั่วไป และเป็นซอฟแวร์แบบ Open Source ที่สามารถใครๆก็สามารถใช้งานได้ฟรี

ทำไมต้องใช้ NGINX?

จุดเด่นของเจ้าตัว NGINX คือ มีประสิทธิภาพมากกว่าเจ้าตัว Apache ด้วยการที่ใช้ทรัพยากรของเครื่องที่น้อยกว่า เช่น RAM และ CPU ทำให้ Server สามารถทำงานได้มากยิ่งขึ้น และยังสามารถทำ Reverse Proxy และ Load Balance ได้อีกด้วย

Reverse Proxy คือ การที่รอรับ Request จาก Internet แล้วทำการ Forward ข้อมูลเข้าสู่ Network ภายใน (Intranet) นั้นทำให้ ระบบภายนอกไม่สามารถ Connect เข้ามายังระบบภายในตรงๆได้ ถือเป็นการป้องกันการโจมตีจากภายนอกได้ด้วย

Load Balancing คือ วิธีการที่ทำให้ระบบสามารถรองรับงาน หรือ ปริมาณการใช้งานระบบได้มากกว่าเดิม ซึ่งมี Load Balancer ที่ช่วยในกระจายงานให้เครื่องต่าง ๆ ทำงานได้แบบทั่วถึง

การใช้งาน NGINX

Update Package Manager

sudo apt update

เป็นการปรับปรุง list รายการของ packages ในระบบของเรา

sudo apt upgrade

เป็นการ Upgrade โปรแกรมในระบบของเราให้เป็น Latest

Install NGINX

ติดตั้ง Package ของ NGINX

sudo apt-get install nginx

เมื่อติดตั้งเสร็จแล้วให้ลองเข้าเว็บผ่าน IP ของ Server จะขึ้นหน้าแรกของ nginx มาให้

NGINX Config คือ?

การ Configuration คือการที่เราสามารถไปตั้งค่าให้ระบบทำงานตามที่เราต้องการได้

/etc/nginx/conf.d/<name>.conf ที่อยู่ของไฟล์ที่จะใช้ในการ Configuration

ใช้คำสั่ง sudo vim /etc/nginx/conf.d/<filename>.conf เพื่อ Configuration

ตัวอย่างของไฟล์ Config

server {
    listen 80;
    server_name your_ip;
    
    location / {
        root /var/www/html;
    }
}

listen คือ Port เพื่อให้เข้าถึง Server โดยเข้าผ่าน port ที่ตั้งค่าไว้

server_name เป็นชื่อ  Domain ของเรา หรือเลข IP ของ Server

location ที่ตั้งค่าเมื่อมี Request เข้ามาจะให้เข้าถึง Resource ของ Server ที่ไหน

Node version manager (NVM)

เป็นเครื่องมือสำหรับจัดการกับเวอร์ชันของ Node ในเครื่อง ซึ่งมีความสามารถในการติดตั้ง Node.js เวอร์ชั่นต่างๆ รวมไปถึงการ Downgrade หรือ Upgrade เวอร์ชั่นของ Node ได้อย่างง่ายดาย

Install node version manager

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Node package manager (NPM)

Node package manager หรือ NPM คือเครื่องมือในการจัดการกับ package ของ Node.js Project ซึ่งถูกเขียนด้วยภาษา JavaScript

Install NPM

nvm install node

Yarn

Yarn คือ Package Manager เช่นเดียวกับ NPM แต่ถูกพัฒนาต่อโดย Facebook ซึ่งสามารถทำงานได้เร็วกว่า NPM มาก

Install yarn

npm install -g yarn

ติดตั้ง Dependency/Package/Module ของ Project ซึ่งกำหนดในไฟล์ package.json

yarn

แหล่งอ้างอิง 📑

Last updated

Was this helpful?