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?