Serverul este doar o mașină cu software server web (cum ar fi nginx, apache etc).
Nu neaparat. Un server este un sistem informatic cu care este obișnuit servi alte sisteme (clienți) cu conținut, date pe care le prelucrează (sau pur și simplu le primește din alte surse) și le returnează clienților.
Poate fi un server Web, dacă servește conținut prin protocolul HTTP, sau un server de baze de date, dacă stochează date și permite manipularea datelor într-un mod relațional (SQL) sau non-relațional, sau un server DNS, dacă servește informații despre numele de gazdă și adresele IP prin protocolul DNS și așa mai departe.
Când găzduim un site web în servicii de găzduire precum GoDaddy sau servicii cloud, furnizează software pentru server web pentru fiecare aplicație care este implementată sau va exista un singur software pentru server web pentru o mașină (server) și fiecare aplicație îl folosește sau noi (clientul) ) trebuie să configurați software-ul serverului web?
Depinde. Unele furnizează mașini virtuale (sau similare) cu servere web preinstalate precum Apache și „numai” trebuie să le configurați corect pentru aplicația dumneavoastră. Alții (AWS EC2) furnizează pur și simplu mașini virtuale simple și trebuie să instalați și să configurați orice serviciu sau pachet (inclusiv un server Web) de care aveți nevoie.
Un server poate avea un număr „n” de software pentru server web?
Da. Același server poate găzdui diferite instrumente de server web (de exemplu, Apache și Nginx, pentru aplicații diferite), sau chiar instanțe diferite ale aceleiași tehnologii de server Web (de exemplu, prin containere) sau un singur instrument de server Web care gestionează mai multe aplicații (eventual folosind gazde virtuale).
În înregistrarea DNS, înregistrarea fiecărui domeniu de aplicație indică adresa IP a serverului sau adresa IP a serverului web?
Ar trebui să indice orice adresă IP care este rutabilă și accesibilă din exterior și este cumva „legată” de serverul Web. O configurare simplă poate fi o mașină virtuală cu o singură adresă IP și serverul web care ascultă acea adresă IP. Dar serverul web poate, de asemenea, să asculte intern pe o altă adresă, cum ar fi 127.0.0.1, și să folosească o tehnică (cum ar fi NAT) pentru a primi solicitări HTTP cu adresa IP a VM ca adresă de destinație. Și așa mai departe.
Dacă toate domeniile aplicației dintr-un server indică aceeași adresă IP, atunci cum sunt direcționate cererile către o anumită aplicație?
Acest lucru se poate face în mai multe moduri. În primul rând, puteți avea procese diferite care ascultă pe aceeași adresă IP, dar pe porturi diferite. Atâta timp cât portul este diferit, nu există conflict - http://www.example.com:80 va ajunge la un alt server web (sau instanță de server web) decât http://www.example.com:8080. Folosind porturi diferite și legând fiecare port la un proces sau o „instanță” a procesului (de exemplu, gazdă virtuală), fiecare solicitare este redirecționată către aplicația potrivită.
EDITAȚI | ×
Încercarea de a răspunde la întrebările suplimentare din comentarii.
ce se întâmplă dacă mai multe aplicații sunt implementate pe un server partajat în loc de VM-uri? Deoarece toată lumea vrea portul ca 443 (unul implicit) dacă aplicația folosește HTTPS, cum sunt direcționate cererile? și care ar fi adresa IP a înregistrării DNS a domeniului către care va indica?
Dacă mai multe aplicații ascultă pe același port și același IP, pot fi efectuate alte tipuri de manipulare a traficului. De exemplu, să presupunem că același IP este legat de trei aplicații:
app1.example.com - portul 443
app2.example.com - portul 443
app3.example.com - portul 443
Cum este redirecționată o solicitare HTTP către aceeași adresă IP și port către aplicația potrivită? O modalitate este de a folosi Antet gazdă. Dacă un browser dorește să contacteze app1.example.com, va trimite o solicitare HTTP către același IP și același port cu antetul gazdă setat la „app1.example.com”.Un proxy invers va prelua acea cerere, va citi valoarea antetului gazdă și va redirecționa acea solicitare către procesul asociat cu „app1.example.com”, chiar dacă acel proces ascultă pe același IP și același port ca și celelalte servere web.
O altă abordare diferită se bazează pe utilizarea unei mașini (VM, baremetal - nu contează) cu mai multe adrese IP. Dacă aceeași mașină are mai multe adrese IP, poate găzdui aplicații diferite pe același port, dar adrese diferite, fără a utiliza niciun truc de antet HTTP.