Bogdan's Docs

Table of Contents

Table of Contents

  • Nginx
    • Internet
    • Ce este un server web?
    • Ce este HTTP?
    • Ce este Nginx?

Ideas

  • Artificial Intelligence
    • Bond Pricing
    • Kubernetes Inference
    • Knowledge Bot
    • Ready to Use Models
    • Satellite Damage Detection

Curs IoT si AI (ro) Resources

  • Links
    • Artificial Intelligence
  • Recipes
    • MacOS
Bogdan's Docs
Docs » iot-si-ai:nginx

Nginx

Internet

Adresele IP (Internet Protocol) sunt identificatori unici alocate dispozitivelor conectate la internet sau la o rețea de calculatoare. Adresele IP permit dispozitivelor să comunice și să se conecteze la alte dispozitive de pe internet sau de pe rețea.

Există două versiuni principale ale protocolului IP: IPv4 și IPv6. Adresele IPv4 sunt formate din patru numere între 0 și 255, separate prin puncte, cum ar fi 192.168.0.1. În timp ce adresele IPv6 sunt mult mai lungi și sunt reprezentate de o serie de caractere hexazecimale separate prin două puncte, cum ar fi 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Adresele IP permit dispozitivelor să se conecteze la alte dispozitive sau la servere web prin intermediul internetului sau al rețelei de calculatoare, prin intermediul rutării pachetelor de date între dispozitive. Fiecare dispozitiv conectat la internet sau la o rețea de calculatoare are o adresă IP unică, ceea ce permite comunicarea între ele.

Adresele IP sunt esențiale pentru funcționarea internetului și a rețelelor de calculatoare, deoarece permit dispozitivelor să se conecteze și să comunice între ele în mod eficient și să transmită informații în întreaga lume.

Folosim servere DNS (Domain Name System) pentru a transforma numele de domeniu, cum ar fi “google.com” în adresele IP, cum ar fi “172.217.11.174”. Acest proces se numește rezolvare DNS și este esențial pentru navigarea pe internet.

În loc să memorăm adresele IP pentru fiecare site web pe care dorim să îl vizităm, putem folosi numele de domeniu pentru a accesa site-ul. Atunci când introducem un nume de domeniu într-un browser web, acesta solicită serverului DNS să furnizeze adresa IP corespunzătoare.

Folosirea numelor de domeniu pentru a accesa site-uri web este mai ușoară decât memorarea adreselor IP și mai flexibilă. De exemplu, un site web poate utiliza o adresă IP diferită în funcție de locația geografică a utilizatorului, dar același nume de domeniu poate fi utilizat pentru a accesa site-ul de oriunde din lume.

Serverele DNS sunt esențiale pentru a asigura funcționarea internetului și permit utilizatorilor să acceseze site-uri web și să comunice între ele prin intermediul numelor de domeniu, fără a fi nevoie să memoreze adresele IP.

Porturile sunt numere de identificare asociate unor servicii sau aplicații specifice care rulează pe un dispozitiv conectat la internet. Ele sunt utilizate pentru a direcționa traficul de date către serviciul sau aplicația corectă și pentru a permite dispozitivelor să comunice între ele în mod eficient.

Există 65535 de porturi disponibile, dar nu toate sunt utilizate pentru servicii de internet. Cele mai frecvente porturi folosite pentru servicii de internet includ:

  • Portul 80: utilizat pentru accesarea site-urilor web prin intermediul protocolului HTTP (Hypertext Transfer Protocol).
  • Portul 443: utilizat pentru accesarea site-urilor web prin intermediul protocolului HTTPS (HTTP Secure) care utilizează criptare SSL/TLS (Secure Sockets Layer/Transport Layer Security) pentru a proteja datele transmise între browser și server.
  • Portul 25: utilizat pentru trimiterea și recepționarea de e-mailuri prin intermediul protocolului SMTP (Simple Mail Transfer Protocol).
  • Portul 110: utilizat pentru recepționarea e-mailurilor prin intermediul protocolului POP3 (Post Office Protocol version 3).
  • Portul 143: utilizat pentru accesarea e-mailurilor prin intermediul protocolului IMAP (Internet Message Access Protocol).
  • Portul 22: utilizat pentru conectarea la un server prin intermediul protocolului SSH (Secure Shell) pentru a permite administrarea sau transferul de fișiere prin protocoalele SCP (Secure Copy) sau SFTP (Secure File Transfer Protocol).

Fiecare serviciu sau aplicație care utilizează internetul poate fi asociat cu un port specific, ceea ce permite dispozitivelor să se conecteze și să comunice în mod eficient prin intermediul internetului.

Un URL (Uniform Resource Locator) este adresa specifică care identifică o resursă de pe internet, cum ar fi o pagină web, un fișier sau o imagine. URL-urile sunt utilizate în mod obișnuit pentru a accesa resursele web prin intermediul browserelor web.

Structura unui URL este următoarea:

scheme://user:password@domain:port/path?query_string#fragment_id
  • scheme: specifică protocolul utilizat pentru a accesa resursa. Exemple de scheme includ HTTP, HTTPS, FTP, SMTP, etc.
  • user și password (opțional): utilizate pentru autentificare, dar sunt rareori folosite în practică din motive de securitate.
  • domain: numele de domeniu sau adresa IP a serverului care găzduiește resursa. Exemple de nume de domenii includ google.com, amazon.com, etc.
  • port (opțional): numărul de port pe care rulează serverul. Dacă nu este specificat, se utilizează portul implicit asociat schemei. De exemplu, portul implicit pentru HTTP este 80, iar pentru HTTPS este 443.
  • path: specifică calea către resursa specificată pe server. Aceasta poate fi un fișier sau un director și este indicată printr-o serie de segmente separate prin caracterul /.
  • query_string (opțional): o serie de perechi cheie-valoare separate prin &, utilizate pentru a trimite parametri către server. De exemplu, ?search=term&page=1.
  • Fragment_id (opțional): un identificator care specifică o secțiune particulară din resursa identificată de URL. Aceasta este utilizată în special pentru paginile web cu conținut extins, cum ar fi cărți electronice sau documente PDF.

În general, structura unui URL este flexibilă și poate varia în funcție de schemele și serviciile utilizate, dar majoritatea URL-urilor utilizează o structură similară.

Ce este un server web?

Un server web este un program sau o aplicație care rulează pe un calculator sau pe o altă mașină și furnizează conținut web către alte dispozitive conectate la internet. Acesta se referă în general la software-ul care rulează pe server și acceptă și procesează cererile de la browsere web ale utilizatorilor.

Serverul web gestionează solicitările primite de la clienți (cum ar fi un browser web) și trimite înapoi răspunsuri la aceste cereri. Cererile pot fi pentru diferite tipuri de conținut, cum ar fi pagini web, imagini, fișiere audio și video și alte resurse web. Serverul web oferă de asemenea suport pentru interacțiunea cu bazele de date și alte aplicații web care rulează pe server.

Există mai multe tipuri de servere web, inclusiv Apache, Nginx, IIS și multe altele, care diferă în funcție de caracteristicile, performanța și flexibilitatea lor. Serverele web sunt o componentă esențială a infrastructurii web, fiind utilizate pentru a găzdui site-uri web, aplicații web și alte servicii de internet.

Ce este HTTP?

Protocolul de transfer de hipertext (HTTP) este un protocol de rețea standard utilizat pentru a comunica între servere web și browsere web. Este utilizat pentru a trimite solicitări și a primi răspunsuri între clientul web (cum ar fi un browser web) și serverul web care găzduiește site-ul web sau aplicația web.

HTTP este un protocol client-server, ceea ce înseamnă că un client web trimite o solicitare către un server web și așteaptă un răspuns de la acel server. Răspunsul poate fi un conținut text, fișiere, imagini sau orice alt tip de conținut web.

HTTP utilizează metodele de cerere pentru a specifica acțiunile care trebuie luate de către serverul web. Cele mai comune metode de cerere sunt:

  • GET: obțineți o resursă specificată de pe serverul web
  • POST: trimiteți date către serverul web pentru procesare (de obicei, pentru a adăuga, actualiza sau șterge date)
  • PUT: încărcați o resursă specificată pe serverul web
  • DELETE: ștergeți o resursă specificată de pe serverul web

HTTP este un protocol fără stare, ceea ce înseamnă că fiecare cerere este tratată independent de orice cerere anterioară. Acest lucru face ca HTTP să fie un protocol eficient pentru aplicații web și permite serverului să servească multiple cereri simultan.

De-a lungul anilor, protocolul HTTP a evoluat și a fost îmbunătățit pentru a sprijini funcții avansate, cum ar fi criptarea prin HTTPS și transferul de date în timp real prin WebSocket.

Folosind telnet poți comunica prin HTTP prin trimiterea manuală a cererilor HTTP. Iată un exemplu de cum poți accesa pagina de start a serverului web Google folosind telnet:

  • Deschide o fereastră de terminal și introdu comanda telnet, urmată de adresa serverului web și portul HTTP (80):
telnet www.google.com 80
  • Așteaptă până când conexiunea este stabilită și apoi trimite o cerere HTTP GET pentru pagina de start a serverului web Google:
GET / HTTP/1.1
Host: www.google.com
  • Apasă Enter de două ori pentru a trimite cererea HTTP.
  • Serverul web Google va răspunde cu un răspuns HTTP care va conține conținutul paginii de start a serverului web Google. Iată un exemplu de răspuns HTTP de la serverul web Google:
HTTP/1.1 200 OK
Date: Tue, 23 Mar 2023 14:57:23 GMT
Content-Type: text/html; charset=UTF-8
Server: gws
Content-Length: 1102
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: ...

<!doctype html><html itemscope="" ...
  • După ce ați primit răspunsul HTTP, puteți să închideți sesiunea telnet apăsând Ctrl + ] și tastând quit pentru a ieși.

Acesta este un exemplu simplu de cum poți comunica prin HTTP folosind telnet.

Ce este Nginx?

Nginx este un server web și proxy invers care este utilizat pentru a gestiona traficul web, de la serverele web de bază până la aplicații web complexe cu trafic ridicat. Nginx este cunoscut pentru performanța și scalabilitatea sa, fiind unul dintre cele mai populare servere web din lume.

Nginx poate fi configurat să ruleze în modul server web, pentru a servi conținut static și dinamic către clienți, sau în modul proxy invers, pentru a redirecționa traficul HTTP și HTTPS către alte servere web sau aplicații. Acest lucru poate îmbunătăți performanța, disponibilitatea și securitatea unei aplicații web.

Printre caracteristicile cheie ale Nginx se numără:

  • Performanța ridicată: Nginx este cunoscut pentru performanța și scalabilitatea sa, fiind capabil să gestioneze mai multe cereri simultan decât alte servere web tradiționale.
  • Proxy invers: Nginx poate fi utilizat ca un proxy invers, pentru a redirecționa traficul către alte servere web sau aplicații, ceea ce poate îmbunătăți performanța și disponibilitatea aplicației.
  • Balansare de încărcare: Nginx poate fi configurat pentru a balansa încărcarea între mai multe servere web de bază, ceea ce poate îmbunătăți performanța și disponibilitatea unei aplicații web.
  • Revenire la viață automată: Nginx poate fi configurat să detecteze și să gestioneze automat eșecurile serverelor web de bază, ceea ce poate îmbunătăți disponibilitatea aplicației.
  • Securitate: Nginx include o serie de funcții de securitate, cum ar fi protecția împotriva atacurilor de tip DDoS și securizarea conexiunilor HTTPS.

În general, Nginx este utilizat pentru a gestiona traficul web pentru site-uri web și aplicații web de dimensiuni mari și medii, dar poate fi utilizat și pentru proiecte mai mici.

Previous Next