Избор на режим на работа на уеб сървъра въз основа на личен опит. Основи на уеб приложенията Какво е необходимо, за да функционира един уеб сървър

Ако въведете http://www.site/how-web-server-work/ в адресната лента на вашия браузър и натиснете клавиша Enter, тази страница от нашия уебсайт ще се появи на екрана.

На най-основно ниво се случи следното: Вашият браузър създаде връзка с уеб сървъра, изпрати заявка за получаване на уеб страницата на страницата и я получи.

Сега малко повече подробности:

URL адресът се състои от три части:

1. Протокол (http)

2. Име на сървъра (www.site)

3. Адреси на страници (как работи-уеб-сървърът)

Браузърът се свързва със сървъра за имена на домейни, за да преведе името на сайта www.site в IP адрес, който използва за свързване със сървърната машина. След това браузърът прави връзка с уеб сървъра на посочения IP адрес на порт 80 или всеки друг, ако е предназначен (Ще обсъдим портовете по-късно в тази статия).

Следвайки HTTP протокола, браузърът изпрати заявка до сървъра, изисквайки файла http://www.site/how-web-server-work/

забележи, че бисквиткиможе да се изпраща и от браузъра към сървъра.

В отговор сървърът генерира динамична уеб страницаи изпрати обратно HTML текст, за да покаже тази страница във вашия браузър. Бисквиткиможе да се изпрати и от сървъра към браузъра в заглавката на страницата. Браузърът чете HTML таговете и извежда уеб страницата на екрана.

интернет

И така, какво е „Интернет“? Интернет се състои от стотици милиони компютри, свързани помежду си компютърна мрежа. Мрежата позволява на всички компютри да комуникират помежду си. Домашен компютърможе да се свърже с интернет, използвайки най-много различни начинии устройства - започвайки от примитивен модем за телефонна линия, качвайки връзка през локална мрежа (LAN) с интернет доставчик ( интернет доставчик).

Основните доставчици на интернет услуги поддържат оптични линии за цяла държава или регион. Основните мрежи са положени по целия свят, свързани чрез оптични линии, подводни кабели или сателитни връзки. Така всеки компютър в Интернет е свързан с всеки друг компютър в Интернет.

Клиенти и сървъри

Като цяло всички компютри в Интернет могат да бъдат разделени на две категории: сървъри и клиенти. Компютрите, които предоставят услуги (като уеб сървъри, FTP сървъри, облачни услуги) на други машини, са сървъри. Машините, които се използват за свързване към тези услуги, са − клиенти. Когато се свържете с Google, за да извършите заявка за търсене или да използвате някоя от неговите услуги, Google предоставя своя компютър (вероятно цял клъстер от мощни компютри), за да обслужи заявката ви. Така че Google предоставя сървъра. Вашето устройство може също да предоставя услуги на някого в Интернет. По този начин потребителската машина обикновено е клиент, въпреки че може да стане и сървър, ако е необходимо.

Един сървър може да предостави една или повече услуги в Интернет. Например сървърен компютър може да има инсталиран софтуер, който му позволява да действа като уеб сървър, сървър за електронна поща и FTP сървър. Клиентските компютри, които се присъединяват към сървъра, насочват своите заявки към специален софтуер, работещ на споделен сървърен компютър. Например, ако използвате уеб браузър на вашия компютър, той ще „говори“ с уеб сървъра на сървърния компютър. Вашето имейл приложение ще „говори“ със сървъра електронна поща, и така нататък.

IP адреси

За да свържете всички тези машини в мрежа, всеки компютър в Интернет има уникален адрес, наречен IP адрес. Типичен IP адрес изглежда така:

Извикват се четирите числа в един IP адрес октетизащото те могат да приемат стойности между 0 и 255 или 28 възможни стойности.

Всеки компютър в интернет има свой уникален IP адрес. Сървърът има статичен IP адрес, който рядко се променя. Домашният компютър често има IP адрес, зададен от ISP, когато машината се свърже с него. Този IP адрес е уникален за тази сесия, но може да е различен следващия път. По този начин ISP се нуждае само от един IP адрес за всеки рутер, който поддържа, а не за всеки клиент.

Ако сте на машина с Windows, можете да видите много информация за интернет на компютъра си, включително текущия ви IP адрес и име на хост, като използвате командата ipconfig. На UNIX машина трябва да въведете nslookup V командна линияза показване на IP адреса на устройството.

Имена на домейни

Тъй като повечето хора изпитват трудности при запомнянето на последователността от числа, съставляващи IP адресите, и тъй като IP адресите понякога трябва да се променят, всички сървъри и сайтове в Интернет също имат четими имена, наречени имена на домейни. Например www.. Това е по-лесно за повечето от нас за запомняне www.сайтотколкото да си спомня 5.9.205.233

Името www.site всъщност се състои от три части:

1. Име в световната мрежа (www). Всъщност можете да направите, без изрично да посочите „www“, въпреки че формално това ще бъде различна мрежа.

2. Име на домейн (qriosity)

3. В зоната на домейн от първо ниво (ru)

Имена на домейниуправлявам Регистратори на имена на домейни. Регистраторите създават имена на домейни от първо ниво и гарантират, че всички имена в зоната от най-високо ниво на домейна са уникални. Регистраторът също предоставя информация за контакт за всяко име на домейн и стартира услугата кой е, указващ собственика на домейна. Името на хоста се създава от собственика на домейна.

Сървъри за имена на домейни

Набор от сървъри, наречени сървъри за имена на домейни(DNS) картографира четими от човека имена в IP адреси. Тези сървъри съдържат прости бази данни с имена и IP адреси и се разпространяват в Интернет. Повечето отделни компании, доставчици на интернет услуги и големи университети поддържат малък DNS. Има и централни DNS, които използват данни, предоставени от регистраторите на имена на домейни.

Когато въведете URL адреса http://www..site, той го предава на сървъра за имена на домейни, сървърът връща правилния IP адрес за www.site. Няколко сървъра за имена може да участват в получаването на правилния IP адрес.

И така, нека повторим прочетеното: Интернет се състои от милиони машини, всяка с уникален IP адрес. Много от тези автомобили са сървъри.Това означава, че те предоставят услуги на други компютри в Интернет. Много от тези сървъри са имейл сървъри, уеб сървъри, FTP сървъри, сървъри за облачни услуги.

Портове

Всеки сървър прави услугите си достъпни чрез Интернет, използвайки номерирани пристанища, по един за всяка услуга, налична на сървъра. Например, има сървърен компютър, работещ с уеб сървър и FTP сървър. Уеб сървърът обикновено ще бъде достъпен на порт 80, а FTP сървърът ще бъде наличен на порт 21. Клиентите се свързват към услугата на конкретен IP адрес и на конкретен порт.

Всяка от най-популярните услуги е достъпна на предварително известен номер на порт, но можете да зададете свой собствен номер на порт на всяка услуга.

Ако сървърът приема връзки на порт от външен свят, а ако защитната стена не защитава портовете, можете да се свържете към предварително определен порт от всеки компютър в Интернет и да използвате услугата. Обърнете внимание, че нищо не ви принуждава например да поддържате уеб сървъра на порт 80. Ако сте инсталирали вашия сървър и сте заредили софтуера на уеб сървъра на него, можете да поставите уеб сървъра на порт 999 или какъвто и да е друг неизползван порт . След това, ако например вашата машина е известна като xxx.yyy.com, те могат да се свържат с нея от URL http://xxx.yyy.com:999 -":999" ясно показва номера на порта, през който може да се достигне до вашия уеб сървър. Ако портът не е посочен, тогава браузърът просто приема, че уеб сървърът е достъпен чрез добре познатия порт 80.

протоколи

След като клиентът е свързан към услуга на даден порт, той осъществява достъп до услугата, използвайки специален протокол. протоколе набор от конвенции на логическо ниво, които позволяват на програмите да обменят данни. За съвместна работа между компютри в Интернет се използва фамилията TCP/IP протоколи. Уеб сървърът използва HTTP протокол.

Допълнително: Сигурност

Можете да видите от това описание, че уеб сървърът е доста проста работа софтуер. Той взема името на файла, изпратен чрез командата GET, получава файла и го изпраща на браузъра. Дори ако вземете предвид целия код за обработка на портове, една проста програма за уеб сървър се състои от не повече от 500 реда код. Пълномащабните уеб сървъри са по-сложни, но в основата си те също са много прости.

Повечето сървъри задават някакво ниво сигурносткъм обслужващи процеси. Най-лесният вариант е да поискате потребителско име и парола, за да получите достъп до сървъра. По-усъвършенстваните сървъри добавят допълнителна сигурност чрез установяване на криптирана връзка между сървъра и браузъра, така че конфиденциална информация(напр. номера на кредитни карти) могат да бъдат изпратени по интернет.

Това наистина е всичко, което е необходимо за уеб сървър, който обслужва стандартни, статични уеб страници. Статичните страници са страници, които не се променят, освен ако самият уеб администратор не ги редактира.

Допълнително: Динамични страници

Какво стана динамичен уеб страници? Например:

1. Всяка книга за гости ви позволява да въведете съобщение в HTML формуляр и автоматично показва нови и стари записи.

2. Всяка търсачка ви позволява да въвеждате ключови думи в HTML формуляр за заявка и след това динамично създава страница въз основа на търсене на информация, използвайки тези ключови думи.

Във всички тези случаи уеб сървърът прави повече от просто „търсене на файл“. Обработва информация и генерира страници в зависимост от спецификата на заявките. В почти всички случаи Web сървърът използва т.нар скриптове- програмен код, написан на PHP, Perl, Java и други програмни езици за завършване на този процес.

Страниците на нашия уебсайт също са динамични, създадени от PHP помощизползване на MySQL бази данни.

уеб сървър (уеб сървър) е сървър, отговорен за получаване и обработка на заявки (HTTP заявки) от клиенти към уебсайт. Клиентите обикновено са различни уеб браузъри. В отговор уеб сървърът издава HTTP отговори на клиентите, в повечето случаи заедно с HTML страница, която може да съдържа всякакви файлове, изображения, медиен поток или всякакви други данни.

Уеб сървърът също изпълнява функцията за изпълнение на скриптове, като CGI, JSP, ASP и PHP, които са отговорни за организирането на заявки към мрежови услуги, бази данни, достъп до файлове, препращане на имейли и други приложения за електронна търговия.

Терминът „уеб сървър“ се отнася и за технически устройства и софтуер, които изпълняват функциите на уеб сървър. Това може да бъде компютър, който е специално избран от група персонални компютри или работна станция, на която е инсталиран и работи сервизен софтуер.

Клиентът на потребителя, който е предимно уеб браузър, отправя заявки към уеб сървъра, за да получи ресурси, идентифицирани чрез URL адреси. Ресурсите са HTML страници, цифрово медийно съдържание, медийни потоци, различни изображения, файлове с данни или всякакви други данни, изисквани от клиента. В отговор уеб сървърът изпраща на клиента исканите данни. Този обмен се осъществява с помощта на HTTP протокола.

HTTP (на английски: HyperText Transfer Protocol) е мрежов протокол за приложния слой за пренос на данни. Основният принцип на HTTP протокола е технологията клиент-сървър, която осигурява взаимодействието между мрежата и потребителя.

В случай на малка организация, уеб сървърът може да бъде интегрална система, която ще се състои от: HTTP сървър - използван за заявки към уеб страници; FTP сървър – използва се за изтегляне на файлове през интернет; NNTP сървъри – предоставя достъп до новинарски групи; SMTP сървър – за имейл.

История

Британският учен Тим Бърнърс-Лий се смята за изобретател на първия уеб сървър. Работейки от 1980 г. в Европейската лаборатория за ядрени изследвания (Conseil Européen pour la Recherche Nucléaire, CERN) като софтуерен консултант, той започва своята развойна работа. В Женева, за свои нужди, той разработва програмата Inquire, която използва произволни асоциации за съхраняване на данни и поставя концепцията за основата на световната мрежа.

През 1989 г. Тим Бърнърс-Лий, работещ върху интранет мрежата на CERN, предложи основаването на глобален хипертекстови проект, който се състои в публикуване на хипертекстови документи, свързани с хипервръзки. Реализирането на този проект, според него, ще улесни учените от ЦЕРН при комбинирането, търсенето и обмена на информация. За да реализира проекта, Тим Бърнърс-Лий, заедно със своите асистенти, изобретяват URI и URL идентификаторите, HTTP протокола и HTML езика. Всички тези технологии вече са широко използвани в съвременния интернет и вече не може без тях.


В резултат на този проект Бърнърс-Лий разработи първия в света уеб сървър, наречен "httpd", както и първия в света хипертекстов уеб браузър за компютъра NeXT, наречен WorldWideWeb.

Първият уеб браузър работеше на платформата NeXTSTEP, обектно-ориентирана, многозадачна операционна система и беше разработен с помощта на Interface Builder. Интерфейсът на уеб браузъра беше много прост и почти цялата информация се показваше в текстов формат само с няколко изображения. В допълнение към стандартния FTP протокол Тим Бърнърс-Лий използва новия HTTP протокол, който той изобрети. Между 1991 и 1993 г. Бърнърс-Лий усъвършенства и публикува техническите характеристики на новите си разработки: URI и URL адреси, HTTP протокола и HTML езика. Уеб браузърът по-късно беше преименуван на „Nexus“, за да се избегне объркване с операционната система, на която е разработен браузърът, и неговото име.

Първият в света уеб сървър и първият уеб браузър работят на персоналния компютър NeXTSTEP; този компютър сега е изложен в музея на ЦЕРН (Микрокосмос).

Тим Бърнърс-Лий беше домакин на първия в света уебсайт на http://info.cern.ch; Този сайт вече е архивиран. Първият сайт се появява в интернет на 6 август 1991 г. На този уебсайт беше дадено:

  • описание на World Wide Web;
  • инструкции правилна инсталацияуеб сървър;
  • информация как да закупите уеб браузър;
  • друга техническа информация.

Този сайт беше и първият в света онлайн указател. Бърнърс-Лий публикува в него списък с връзки към други сайтове и го актуализира редовно.

На 12 декември 1991 г. първият в света уеб сървър е инсталиран в Stanford Linear Accelerator Center (SLAC) в Съединените щати.

Основни и допълнителни функции

Всички основни и допълнителни функции на уеб сървъра:

  • Получаване на заявки от уеб браузъри чрез HTTP стандарта с помощта на TCP/IP мрежови протоколи;
  • Търсене и изпращане на файлове с хипертекст или всякакви документи към браузъра чрез HTTP;
  • Обслужване и обработка на заявки, като: mailto, FTP, Telnet и др.;
  • Стартиране на приложни програми на уеб сървър с последващо прехвърляне и връщане на параметри за обработка чрез CGI интерфейс стандарт;
  • Експлоатация и поддръжка на навигационни карти с изображения (Image map);
  • Администриране и оперативно управление на сървъра;
  • Авторизация на потребители и тяхната автентификация;
  • Поддържане на регистър на потребителските заявки към различни ресурси;
  • Автоматизирана работа на уеб страници;
  • Поддръжка на страници, които се генерират динамично;
  • Поддръжка на HTTPS протокола за сигурни връзки с клиенти.

Описание на уеб сървъра

Уеб браузърите комуникират с уеб сървърите, използвайки протокола за трансфер на хипертекст (HTTP). Това е прост протокол за заявка и отговор за изпращане на информация чрез TCP/IP протокола. Уеб сървърът получава заявката, открива файла, изпраща го до браузъра и след това затваря връзката. Графичната информация, която присъства на страницата, се обработва по същия начин. След това е ред на уеб браузъра да покаже HTML документа, изтеглен от интернет, на монитора на потребителя.

В допълнение към HTML страници и графики, уеб сървърите могат да съхраняват всякакви файлове, включително текстови документи, текстови документи, видео файлове и аудио информация. Днес, ако не вземете предвид въпросниците, които потребителите попълват, по-голямата част от уеб трафика се предава в една посока - браузърите четат файлове от уеб сървъра. Но това ще се промени с общото приемане на метода PUT, описан в черновата на HTTP 1.1, който позволява файловете да се записват на уеб сървъра. Днес методът PUT се използва главно от потребители, които създават уеб страници, но в бъдеще може да бъде полезен и за други потребители, за да предоставят обратна връзка на информационните центрове. PUT заявките са много по-прости от обикновеното POST качване на файлове на уеб сървър.

Различни приложения също изпълняват своята работа на уеб сървъра, най-популярните от които са търсачките и инструментите за комуникация с бази данни. Стандартите, използвани за разработване на тези приложения, включват Common Gateway Interface (CGI), JavaScript скриптови езици и Java програмиранеи VisualBasic. В допълнение към стандарта CGI, някои компании за уеб сървъри са създали интерфейси за програмиране на приложения (API), като API на Netscape Server и API на интернет сървъра, които са създадени от Microsoft и Process Software AG. Тези интерфейси позволяват на разработчиците директен достъп до специфични функции на уеб сървъра. Някои уеб сървъри предоставят междинен софтуер за свързване с бази данни, което може да изисква напреднали познания по програмиране, за да работи.

Основните функции за търсене помагат на потребителите да сортират информацията, от която се нуждаят, а помощните програми за бази данни дават на потребителите на уеб браузър достъп до тази информация.

Общ преглед на уеб сървъра

Критериите за избор на уеб сървър могат да включват различни характеристики: инсталация, конфигурация, управление на сървъра, администриране, управление на информация, хоствана на сървъра, защита на тази информация, контрол на достъпа, функции за разработка на приложения и производителност.

Повечето уеб сървъри се инсталират лесно и бързо.

Най-трудната част от инсталационния процес е конфигурирането на няколко имена на домейни на един физическо устройствоили с други думи организацията на виртуални сървъри.

Уеб сървърите разполагат с инструменти за управление на информационния модул, който характеризира цялостната организация на уеб сайта, както и инструменти за проверка на коректността на вътрешни и външни хипертекстови връзки. Пакетът LiveWire на Netscape Communications, който се доставя с Novell Open Enterprise Server (OES) и се предлага по избор с FastTrack Server, има помощна програма за управление на хост, която изброява всички връзки за избрана страница. Тази помощна програма също предоставя общ списък на всички неправилни връзки, които открива. WebView на O'Reilly & Associates има същата функционалност и може да показва подробно файлово дърво с всички невалидни връзки, маркирани в червено.

Има и основни инструменти за управление на съдържанието. Уеб администраторите трябва да изберат къде да съхраняват файловете и как тези файлове ще бъдат достъпни от потребителите, които имат достъп до уеб сървъра. Това изисква съпоставяне между логически URL адреси и физически файлови директории. Всеки софтуер изпълнява тази операция по свой уникален начин.

С нарастващата популярност на уеб сървърите и нарастващото им използване в интранет, търговската дейност в Интернет се увеличава, така че значението на защитата на информацията нараства. По-често системите за сигурност на уеб сървърите са или прекомерни, или недостатъчни за днешните интранети. Ако е необходимо да се ограничи достъпът до определена информация в компанията, тогава има избор между използването на некриптирани пароли, които се предават по комуникационни канали, и използването на SSL протокол(на английски: Secure Sockets Layer) е сложен и бавен метод, който се използва за криптиране на пароли и данни.

За организиране на работата на отделни потребители и техните групи могат да се използват вътрешни приложениясървър или определени функции на операционната система. За организиране на работата на отделните потребители и техните групи могат да се използват вътрешни сървърни приложения или определени функции на операционната система. Microsoft IIS Batch Service осигурява поддръжка за основната мрежова операционна система Windows NT.

NetWare уеб сървър от Novell, Inc. Напълно интегриран с адресни справочни услуги (NetWare Directory Services, NDS). Удобно е да управлявате потребители от общ център, но може да представлява риск за сигурността. Паролите се разпространяват некриптирани по комуникационни канали и ако бъдат прихванати, не само уеб сървърът е изложен на риск, но и сигурността на цялата мрежова операционна система.

Разработката на приложения е една от основните функции на уеб сървъра. Средата за разработка на приложения и инструментите за свързване на бази данни са много важни за разширяване на възможностите на уеб сървъра, тъй като разработката на приложения зависи от различни идиосинкратични детайли на интерфейса за програмиране на приложения (API), както и от характеристиките на езиците за програмиране или индивидуалните предпочитания на програмистите.

Уеб сървърите могат да обслужват различни системи от интранет на малки предприятия до големи уеб информационни центрове, използвани от милиони хора.

За малки корпоративни интранети най-добрият пакет за използване е Internet Information Server (IIS), създаден и разпространяван от Microsoft. IIS има доста проста инсталация и прости настройкиконфигурации. Този уеб сървърен пакет е добре интегриран с контроли за достъп, инструмент за мониторинг на системата Performance Monitor и Event Viewer. Уеб сървърът на IIS също предоставя няколко инструмента за динамично прехвърляне на информация от бази данни. IIS е много бърз. IIS компонентите поддържат протоколи като: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

За да се улесни създаването на уеб информационни центрове, повечето уеб сървъри се доставят с помощни програми и инструменти за управление на съдържание. Освен HTML редакторите и конверторите на формати на документи, най-полезните инструменти са URL контролите, които гарантират, че всички хипертекстови връзки на вашия уеб сайт работят.

Всеки персонален компютър, който е свързан към Интернет, може да се превърне в уеб сървър, ако инсталирате специален сървърен софтуер на него.

Най-често срещаните уеб сървъри са Apache (Apache Software Foundation), IIS (Microsoft) и iPlanet сървър (от Sun Microsystems и Netscape Communications Corporation). Сега на пазара на софтуер за уеб сървъри има огромен избор от продукти, както търговски, така и безплатни.

Един от най-разпространените уеб сървъри е Apache от Apache Software Foundation. Смята се, че се използва на 65% от всички уеб сървъри в света. Едно от основните предимства на софтуера Apache е, че е безплатен за разпространение. Разработчиците редовно коригират открити грешки и осигуряват добра потребителска поддръжка. Този уеб сървър поддържа голям брой модули, помощни програми и добавки. Тъй като от самото начало Apache е разработен като софтуер за администратори и напреднали потребители, недостатъкът е, че е труден за конфигуриране и поддръжка от неопитни уебмастъри.

Следващият по популярност е IIS уеб сървърът на Microsoft. Според Netcraft, IIS уеб сървърът представлява 12,46% от общия брой уеб сървъри. Този продукт е част от семейството сървърен софтуер на Windows NT. Основните му предимства са стабилност, висока скорост и възможност за свързване на допълнителни модули. Microsoft се стреми да гарантира, че всеки потребител може да използва неговите продукти без помощта на специалисти, ако трябва да разреши стандартни проблеми. Следователно IIS е много лесен за инсталиране, конфигуриране и поддръжка. Уеб сървърът поддържа .NET технология, която напоследък набира популярност сред разработчиците и професионалните потребители. Тези предимства извеждат IIS уеб сървъра на следващото ниво и можете да очаквате използването му да се увеличи.

Други известни уеб сървъри:

  • nginxе безплатен уеб сървър и прокси сървър за електронна поща, разработен от Игор Сисоев. Прост, бърз и надежден сървър. Работи на Linux и други Unix-подобни системи операционна система, както и на Windows. Популярни в големи уебсайтове;
  • lighttpd- безплатен уеб сървър. Разработено от Ян Кнешке. Бърз и сигурен уеб сървър. Работи на Linux и други Unix-подобни операционни системи, както и на Windows;
  • Уеб сървър на Google- уеб сървър, който е базиран на Apache и се използва от Google за организиране на неговата уеб инфраструктура;
  • Смола- безплатен уеб сървър и сървър за приложения за Java. Разработено от Caucho Technology Inc.;
  • чероки- безплатен уеб сървър, който се контролира само през уеб интерфейса. Написан на езика за програмиране C;
  • Вкореняване- уеб сървър, написан на езика за програмиране Java. Работи на Linux и Windows;
  • THTTPD- прост, малък, бърз и сигурен уеб сървър. Разработено от ACME Labs Software.

Клиенти на уеб сървър

Обикновено клиентът е уеб браузър. Но различни други устройства и програми също имат достъп до уеб сървъра:

  • Уеб браузър, инсталиран на настолен персонален компютър;
  • Уеб браузър, инсталиран на PDA или друго преносимо устройство;
  • Мобилни телефони и смартфони, с които потребителят получава достъп до ресурсите на уеб сървъра чрез WAP протокол;
  • Различни програми, които имат независим достъп до уеб сървъра, за да актуализират или получат друга информация. Пример са различни антивируси, които периодично се свързват с уеб сървъра, за да актуализират базата данни;
  • Различни цифрови устройства, както и някои домакински уреди.

Тази статия ще бъде полезна за онези хора, които вече имат собствен уебсайт или планират да отворят такъв. Статията ще бъде особено интересна за амбициозни уеб администратори, които смятат, че най-добрият час на техния проект е точно зад ъгъла и искат да се подготвят за наплива от посетители на страницата.

Дори онези, които само мечтаят за хиляди потребители на уебсайта си, вероятно са се чудили: „Колко потребители ще поддържа уебсайтът ми, ако влязат едновременно?“ Веднага си спомням добре познатия израз „Habraeffect“ - феноменът на отказ на сайт, който не беше готов за многобройни преходи към него, след като връзка се появи в Интернет.

Да приемем, че вече има уебсайт (или скоро ще има): къде да го поставим? Трябва ли да е класически хостинг или VPS сървър? Ако vps, кой и как най-добре да го конфигурирате? Или може би изобщо няма разлика и е по-лесно да изберете какво е по-евтино? В тази статия ще разгледаме няколко варианта и ще видим на практика кой е по-подходящ за нашия сайт.

Ще експериментираме: ще зададем различни режими на работа на сървъра и ще измерим производителността. Ние ще симулираме натоварването на сайта с помощта на услугата Loaddy.com. Там можете да зададете броя на потребителите, нарастващия тип натоварване и графиката ще покаже как сървърът реагира на тях. Смята се, че един потребител генерира приблизително една заявка към сайта в рамките на 10 секунди. Като тестов сайт, нека вземем демо онлайн магазин на cms moguta. Тя ще бъде пълна с тестови „продукти“, които се показват на главната страница според няколко критерия (тоест при създаването на страницата се работи с базата данни и т.н.). По един или друг начин това ще ви позволи да сравнявате режимите един с друг.

Като тестов сайт ще създадем VPS сървър на Ubuntu OS. Конфигурацията му ще бъде. Ще приемем, че това са сървърите начално нивосъздадени в повечето случаи за нови проекти. Тестовата версия на онлайн магазина ще бъде достъпна на IP адрес http://130.193.44.219/

Класическият хостинг също ще бъде полезен, на който също ще качим същия онлайн магазин за провеждане на тестове. Можете сами да следвате нашия път и да проведете същите тестове на вашия проект!

Тъй като в повечето случаи заедно с vps се предлага контролен панел, ние ще направим основните промени в настройките в него. На vps сървъра разполагаме с 3 режима на работа:

  • Apache;
  • Apache в CGI режим;
  • Nginx + php-fpm (без Apache).
Но първо, нека го тестваме на хостинга:

Класически евтин хостинг

Грешки се появяват, когато броят на посетителите надвишава 50 души. Хостингът спира да обслужва съдържание и ако отидем в контролния панел на хостинга, можем да видим нещо като следното:

Вашият сайт е бил ограничен през последните 24 часа. Ресурсите на процесора са ограничени за вашия сайт. Достигнали сте лимитите за входни процеси (брой едновременно работещи PHP и CGI скриптове, планирани задачи и конзолни сесии) 126 пъти.
Е, разбира се, хостингът си е хостинг, особено евтин. Можете, разбира се, да намерите тарифа, която ще предостави повече възможности, но всичко това трябва да се вземе предвид и по някакъв начин да разберете точните данни за ограниченията от всеки хостинг доставчик.

VPS: Apache

Следващият по ред е нашият тестов VPS с режим Apache, който между другото се предлага по подразбиране при инсталиране на контролния панел на ISP.

Проблемите започват, когато броят на потребителите надхвърли 90. Ако влезем в нашия сървър чрез ssh и в този момент погледнем списъка с процеси, използвайки горната команда, сортирани с помощта на Shift+M (по количеството консумирана памет), ще видим нещо като това:

Виждаме, че процесът apache2 е нараснал в много деца и те са изяли цялата RAM на нашия vps сървър.

Тук трябва да направим малка забележка. Факт е, че за сървъра Apache, теоретично, има режим, който позволява вместо голям брой дъщерни процеси за всяка връзка, да се създадат няколко така наречени мултинишки, всяка от които ще обслужва няколко връзки. Този режим се нарича работник, за разлика от по подразбиране префорк. Но инсталирането му не е лесно, невъзможно е да се направи това в панели като ISP и ако се озадачите и опитате да го направите през ssh, ще разберете, че за това не е достатъчно да изключите prefork и да включите worker , вие също се нуждаете от безопасна за нишки версия на php. И ако се използват модули като Zend или IonCube, тогава те също трябва да са безопасни за нишки. И като цяло официалният уебсайт на PHP не препоръчва инсталирането на този режим.

VPS: CGI

Нека да видим какво се случва при използване на CGI режим. За да направите това, трябва да разрешите използването на PHP в CGI режим в контролния панел на ISP, това се прави в „ Сметки– потребители – настройки за потребителя.“

Оказа се мрачна картина. Сървърът отказва да обслужва съдържание дори при 55+ посетители, цялата RAM памет се изяжда от „php“ процесите. Следва опит за възстановяване на функционалността, но той все още завършва с почти 100% неуспех.

VPS: Nginx + PHP-FPM

Дойде време за режим, в който сървърът Apache изобщо не се използва, вместо него работи Nginx, а php се обработва от модула php-fpm. Ако използвате контролен панел на ISP, трябва да активирате този режим за потребителя. Това се прави и в секцията „Акаунти – Потребители – Потребителски настройки“. Този режим също трябва да е наличен в раздела „Настройки – Функции – Уеб сървър (www)“.

Точно това, което е необходимо! 100% наличност, докато скоростта на зареждане и времето за реакция на сървъра са на приемливи нива, въпреки че се увеличават с увеличаване на натоварването. Въпреки това сървърът се справя!

Нека да разгледаме таблицата с процеси в момента на максимално натоварване на сървъра:

Виждаме, че все още имаме наличност на достъпна цена оперативна памет. И дъщерните процеси на php-fpm7.0 не растат в големи количества, но са ограничени до 5 копия, всяко от които обслужва няколко нишки.

Е, изглежда, че „печелившият режим“ е определен. Нека разберем колко едновременни посетители може да обслужи нашият сървър в този режим. Но преди това ще направим малко „настройка“. Първо, тъй като apache не се използва, когато сървърът работи по този начин, той може да бъде напълно деактивиран. Ще направим това в контролния панел на ISP в раздела „Система - Услуги“. Второ, нека променим малко принципа на стартиране на php-fpm процеси. По подразбиране е динамичен. Това означава, че дъщерните процеси ще висят в паметта, дори когато не са необходими. В същото време паметта не се освобождава и с течение на времето тези процеси могат да станат по-големи, отколкото бихме искали. Поради това се предлага да се инсталира режимът „ondemand“ - при поискване. И задайте броя на дъщерните процеси и времето за изчакване за тях.

За да направите това, ще трябва да влезете в сървъра чрез ssh и да запишете тези настройки в конфигурацията php файл. Удобно е да направите това във файл за потребителя, за когото е създаден домейнът в ISP.

Обикновено се намира в /etc/php/7.0/fpm/pool.d

И така: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Там виждаме следните настройки по подразбиране:

Pm = динамичен pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
За да работи режимът при поискване, трябва да замените това с:
pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s
И рестартирайте php-fpm с командата

Рестартиране на услугата Sudo php7.0-fpm
След това процесите php-fpm7.0 ще бъдат създадени при поискване (ако има натоварване), максималният им брой ще бъде = 5 и след 10 секунди бездействие процесът ще бъде убит, освобождавайки RAM.

За всеки случай нека повторим нашия тест, за да се уверим, че цялата тази аматьорска дейност не е повлияла негативно на работата на сайта:

Сега нека стартираме Loaddy с много посетители, за да видим колко връзки може да обработи сървърът ни:

Добрата новина е, че всички заявки бяха обработени, макар и с голямо закъснение, с голям брой в секунда. Времето за реакция на сървъра наближава 10 секунди с брой заявки от 190+ Но нека си спомним графиката на режима apache, където получихме 4 секунди отговор на сървъра вече с 80+ потребители, докато в режим php-fpm подобни забавяния се наблюдават при 130 заявки, които специално маркирахме с курсора на графиката по-горе.
Но това е същият VPS.

Таблица с топ процеси в края на теста (с 200 потребители):

Имайте предвид, че след приключване на тестването паметта, използвана от pfp-fpm, беше освободена:

Това означава, че нашият сървър е готов за нови натоварвания.

Трябва да запомните, че сайтът работи в режим nginx+php-fpm, което означава, че apache2 не се използва в работата и в резултат на това не се използва .htaccess. Това може да изглежда неудобно, но е най-бързата налична опция и търсачките класират сайтовете, които са бързи, по-добре.

Заключение

В заключение, още една малка точка: Ако сте конфигурирали всичко, което искате на сървъра и сте решили да деактивирате контролния панел на ISP или вашият лиценз за него е изтекъл, имайте предвид, че „основният“ процес от него ще остане висящ вашия сървър. С течение на месеците може да стане по-голям, така че е по-добре да го „убиете“ и да го премахнете от autorun и crona.

Ако искате сами да тествате сайта с помощта на Loaddy или други методи, можете да го намерите на

Уеб хостинг индустрията изисква поне някои основни познания, за да работи. Има няколко термина за уеб хостинг, с които всеки уеб администратор трябва да знае. Един от най-основните е: уеб сървърВ действителност уеб хостингът се състои от уеб сървъри, които осигуряват място за вашия уебсайт. Сървърът HP Micro AMD N40L е многофункционален сървър, който може да осигури платформа за организиране и защита на бизнес информацията, да позволи ефективна комуникация с клиентите и да извлече максимума от вашето съществуващо офис оборудване и ресурси. HP MicroServer е рентабилен начален сървър за фирми с по-малко от 10 клиента и може да изведе бизнеса ви до нови нива на производителност и ефективност.За да научите повече за HP Micro AMD N40L сървър, последвайте тази връзка http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

уеб сървърможе да означава две неща - компютър, който хоства уебсайта и програма, който работи на такъв компютър. Следователно терминът, свързан с уеб сървъра както хардуер, така и софтуер . Ще разгледаме тези два типа един по един.

Хардуер на уеб сървъра

Уебсайтът е колекция уеб страницикоито са цифрови файлове, които обикновено се записват с помощта на езика за маркиране на хипертекст HTML. Уебсайтът ще бъде достъпен за целия свят през цялото време, за целта той трябва да се съхранява или на хостинг, или на компютър, свързан към интернет 24/7/365. Такъв компютър се нарича Уеб сървър (обърнете внимание, че първите букви са главни).

Потенциално можете да хоствате уебсайт на домашния си компютър, но това изисква много работа и постоянно наблюдение.По-лесно е да закупите уеб хостинг от компания, защото има хиляди от тях, които предлагат тази услуга на разумни цени. Накратко за една от най-добрите компании в края на статията, можете не само да получите уеб хостинг, но и име на домейн и уебсайт и това е наистина евтино!

Към компютърния сървър има редица изисквания - той трябва да е достатъчно бърз, да има голямо количество RAM и HDDс голям обем.Но най-важното е да имате постоянен адрес в интернет, известен още като IP - адрес на интернет протокол. Ако IP адресът на уебсайта не бъде намерен и той ще работи извън линия- браузърът ще покаже грешка не мога да намеря уебсайт.

Програми и софтуер за уеб сървъри

Програми уеб сървърТова е софтуер, който управлява уебсайт на компютър с хостинг сървър. Основната му цел: проблемуеб страници; това означава, че той слуша заявки от уеб браузъри (известни също като клиенти ) и отговаря, като изпраща обратно необходимите данни. Това взаимодействие клиент-сървър е отличителна част от начина, по който работи уеб сървърът..

Има много програми за уеб сървъри. Най-известният и популярен от тях е Apache, разработен от Apache Foundation.Apache не само е безплатен, но е достъпен и за няколко операционни системи, включително Windows, Macintosh и Linux/Unix.

Въпреки че термините уеб сървър и сървър на приложения често се използват взаимозаменяемо за означаване на едно и също нещо, тоест за осигуряване на правилното функциониране на уебсайт, те не са едно и също нещо. По-скоро те работят заедно, за да доставят съдържание от уебсайтове до крайни потребители. Уеб сървърът може да се отнася до програма, която приема и изпълнява входящи заявки от клиенти за уеб ресурси по целия свят. Той обслужва тези заявки заедно с незадължително съдържание, което обикновено е HTML страници, файлове с изображения, видео файлове и т.н. Сървърът на приложения обслужва динамично съдържание на крайни потребители, използвайки различни протоколи, включително HTTP. Тази статия обяснява разликата между двете.

Какво е уеб сървър?

Уеб сървърът не е нищо повече от софтуерна програма, предназначена да обработва уеб заявки. Той приема входящи заявки под формата на статично съдържание, което основно са компоненти на уебсайтове, включително HTML страници, графични и видео файлове и т.н. След това отговаря на заявки през HTTP заедно с допълнително съдържание на данни. Основната задача на уеб сървъра е да предоставя съдържание на World Wide Web, за да го направи достъпно за крайните потребители. Може да се отнася до система, съставена от хардуер или софтуер, или където се съхранява уеб съдържание. Говорейки с прости думи, уеб сървърът е компютър, който доставя уеб страници, както са поискани. Apache е най-популярният и широко използван уеб сървър с отворен код, разработен и поддържан от Apache Software Foundation.

Какво е сървър на приложения?

Сървърът на приложения е термин, който често се бърка с уеб сървър, с изключение на това, че той може да използва различни стратегии за обработка на заявки, инициирани от уеб сървъра. Това улеснява хостването и доставянето на висококачествени бизнес приложения. Често се разглежда като тристепенно приложение, състоящо се от GUIпотребител (GUI), сървър на приложения и база данни и сървър за транзакции. Той обслужва бизнес логиката на приложните програми чрез различни протоколи, включително, но не само HTTP. Това е софтуерна рамка, която предоставя всички възможности, необходими за създаване и стартиране на уеб базирани и корпоративни приложения. Вместо да обслужва статично съдържание, той е най-подходящ за обслужване на динамично съдържание и прехвърляне на приложения от едно устройство на друго.

Разлика между уеб сървър и сървър на приложения

Основи на уеб и сървър за приложения

Уеб сървърът се отнася до хардуера или софтуера, или и двете, които доставят съдържание или услуги на крайни потребители през World Wide Web. Това е по-скоро програма, която отговаря на входящи мрежови заявки за уеб ресурси, използвайки HTTP протокола. Известен е още като интернет сървър. От друга страна, сървърът за приложения е софтуерна рамка, базирана на компоненти, която улеснява разработването и стартирането на уеб приложения. По същество това е сървърна програма от средно ниво, предназначена да осигури бизнес логика за приложни програми.

Уеб сървърът е ограничен само до HTTP съдържание, което означава, че използва HTT протокола за съхраняване, обработка и доставяне на съдържание на клиенти. Това е мощен компютър, който прави уебсайтовете достъпни през интернет, а комуникацията между клиента и сървъра се осъществява чрез HTTP. Сървърът на приложения не е ограничен до изпращане на статично HTML съдържание; Всъщност той предава бизнес логиката на клиентските приложения, използвайки множество протоколи.

Функция на уеб сървър и сървър на приложения

Работата на уеб сървъра е да приема и отговаря на заявки от потребители, които са пренасочени от HTTP клиенти на техните компютри, които могат да бъдат от уеб браузър или от мобилно приложение. Основната цел на уеб сървъра е да направи статично съдържание достъпно за потребителите, за да го гледат в уеб браузъри. Задачата на сървъра за приложения е да хоства и публикува приложения и бизнес логически процеси, използвайки няколко различни протокола. Работи във връзка с уеб сървър.

Многопоточност

Уеб сървърът отговаря на заявки, идващи от множество връзки едновременно, но не може да обработва няколко едновременни заявки паралелно. Идеята за използване на нишки за подобряване на скоростта на обработка просто не работи с уеб сървъри. От друга страна, сървърите на приложения поддържат многопоточност, както и редица други функции като споделяне на изолация, групиране, балансиране на натоварването, клъстериране и т.н.

Капацитет на уеб сървър и сървър на приложения

Уеб сървърът е базиран на свързани с интернет и интранет програми за обслужване на имейли, заявки за изтегляне FTP файловеи за създаване и публикуване на уеб страници за клиенти, използващи HTTP протокола. Може да се използва самостоятелно или като компонент в сървър за приложения. От друга страна, сървърите за приложения могат да правят всичко, което могат да правят сървърите за приложения, и много повече. Те са по-способни да създават динамично съдържание, което да обслужва както уеб, така и корпоративни приложения.

Уеб сървър срещу сървър на приложения: Сравнителна таблица

Резюме на уеб сървър срещу. Сървър за приложения

Уеб сървърите играят основна роля в работата на Интернет, без които Интернет престава да съществува. С прости думи, уеб сървърите действат като портал между потребителя и световната мрежа. Това е система, предназначена да доставя статично съдържание на крайни потребители през Интернет. Той е ограничен до заявяване на обслужване на клиенти само чрез HTTP протокол.За разлика от тях, сървърите на приложения са по-интензивни към ресурси, които предоставят междинни услуги на клиентски приложения чрез различни протоколи, включително HTTP. Това е платформа, предназначена за инсталиране, работа и хостване на приложения и услуги за крайни потребители. Въпреки че и двете са необходими за правилното функциониране на уебсайта, те са много различни един от друг.


Връх