Како да инсталирате веб-сервер со Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [1-ви дел: Презентација]

Неодамна споменавме дека сега работи DesdeLinux (сите негови услуги) Сервери на GNUTransfer.com. Блогот е многу подобрен во однос на брзината, флуидноста, дури и кога ќе поминеме одпо спојувањето на UsemosLinux) повеќе од 30.000 200 посети секој ден (скоро XNUMX корисници се поврзани истовремено). Како да постигнете добри перформанси на серверот дури и со овој обем на сообраќај?

Во моментов Justice (VPS каде што се наоѓа блогот и некои други услуги) има 3 GB RAM меморија, но се трошат помалку од 500 MB, ова е можно со правилен избор на софтвер што треба да се користи и соодветна конфигурација од нив. На пример, Apache е несомнено голем во светот, број 1 кога станува збор за хостирање, но токму поради таа причина Apache не е секогаш најдобрата опција. Кога сообраќајот е голем и хардверот на серверот не е навистина голем (пр. 8 или 16 GB RAM) Apache може да потроши премногу RAM меморија со што на серверот ќе треба премногу време да одговори, или уште полошо, дека нашата страница е офлајн за недоволни ресурси. Ова е причината зошто многумина од нас избираат Nginx наместо Apache.

nginx:

Веќе ви кажавме за Нгинкс претходно во статијата Nginx: Интересна алтернатива на Apache, таму ви кажуваме дека станува збор за веб-сервер како Apache, LightHttpd или Cherokee, но тој во споредба со Apache се истакнува по своите перформанси и малата потрошувачка на хардвер, токму поради таа причина многу големи страници како што се Facebook, MyOpera.com, DropBox или дури и WordPress .com користат Nginx наместо Apache. Во светот на Linux бидејќиLinux не е единствениот што користи Nginx, колку што знам, emsLinux и MuyLinux исто така го користат

Моето лично искуство со Nginx датира од пред неколку години, кога од нужда започнав да барам лесни алтернативи за Apache. Во тоа време Nginx се залагаше за верзија 0.6 и нејзината компатибилност со страниците со голема побарувачка направени во PHP не беше најоптимална, сепак денес од верзијата 0.9 па натаму (v1.2.1 достапен на Debian Stable, v1.4.2 достапен на ArchLinux) се подобри многу, до тој степен што со соодветна конфигурација и соединување на Nginx + PHP сè ќе работи како привлечност.

Во оваа серијал за упатства Useе ја користам верзијата Nginx 1.2.1-2.2, достапно во репозициите на Debian Stable (Визи).

PHP5:

PHP, тој програмски јазик со кој работат многу од страниците (и CMS) денес, според мене е црна овца на семејството. Тоа е, според мое лично искуство, големи страници, со голем обем на посети, со многу опции, функции, итн., Ако таквата страница е направена во PHP ќе троши повеќе ресурси отколку слична страница направена, на пример, во RoR Моето искуство е дека луѓе, PHP е огромен змеј на ресурси, PHP + Apache е доволно за да проголта стотици и стотици MB MB RAM меморија без вистинска потреба.

Причината да не се користат RoR, Django или некој друг е едноставно дека DesdeLinux (блогот, нашиот предводник) работи со WordPress, CMS развиен со PHP што ни нуди толку многу, многу удобности, што едноставно не мислиме да ги смениме во на краток или среден рок, искрено, WordPress дури и кога не е совршен служи за она што ни треба и можеби повеќе.

Во врска со PHP, во овие упатства ќе го користам Верзија за PHP 5.4.4-14 достапно на Debian Wheezy (стабилна)

Расте_Брзо CGI:

Ова може да се каже дека тоа е она што го поврзува Nginx со PHP, т.е. дури и ако го имаат инсталирано пакетот PHP5 ако немаат инсталирано и извршено Spawn_FastCGI кога отвораат страница во PHP, прелистувачот ќе ја преземе датотеката, нема да им покаже ништо што .php е програмиран бидејќи серверот не знае како да обработува датотеки .php, затоа е од суштинско значење да се инсталираат и конфигурираат Spawn_FastCGI.

Ако користевме Apache, тоа ќе беше нешто едноставно како инсталирање на пакетот libapache2-mod-php5, но бидејќи го користиме Nginx, ќе треба да го инсталираме пакетот spawn-fcgi. Исто така, во упатството ќе објаснам како да креирате почетна скрипта за тоа во /etc/init.d/ за да можете да го контролирате поудобно.

MySQL:

Ова може да биде големиот прашалник или можеби, за некои, несогласувачката нота. Многумина што ги познавам ќе ми го постават прашањето: зошто да користам MySQL, а не MariaDB?

Работата е едноставно дека немам доволно време да се посветам на миграција во овој момент од MySQL до MariaDB, миграција што во теорија треба да биде транспарентна за секого, 100% компатибилна со сè, но тоа е… како што реков, во теорија. Во моментот кога почнав да ги преместувам услугите FromLinux од еден VPS во друг, морав да го оставам Apache зад себе и да го користам Nginx, ова подразбира различни конфигурациски датотеки, различни начини да се прогласат VHosts, инсталација и конфигурација од нула на серверот и неговите услуги не можев во тоа време да додадам друга задача на списокот, исто така и да бидам искрен, го сменив Apache во Nginx затоа што Apache не ги задоволуваше моите потреби, сепак, MySQL досега ги задоволува моите потреби 100%, не гледам причини за тој момент Јас го зголемив обемот на работа со промена на нешто што веќе работеше технички добро за мене.

Откако објасни зошто не ја инсталирав MariaDB, објасни исто така дека бидејќи на огромното мнозинство на веб-страници им е потребна база на податоци за нивното работење, бидејќи токму таму ќе бидат зачувани многу информации (или скоро сите) од нив. Постојат некои кои сакаат Postgre или некој друг, во оваа серија на упатства ќе објаснам како инсталирајте MySQL и конфигурирајте одделни корисници за секоја страница.

La MySQL верзија што ќе ја користам е v5.5.31

АПЦ:

APC е оптимизатор за PHP (објаснето многу едноставно). Ни овозможува еднаш правилно конфигурирање дека обработката на PHP работи подобро, дека одговорите од серверот се побрзи.

Постојат алтернативи како memcache, сепак, јас секогаш користев APC и имав многу поволни резултати. Препорачувам да го прочитате овој напис на англиски јазик: Споредување на APC и Memcache како локална меморија за содржина

Во упатството ќе ја користам верзијата на php-apc v3.1.13-1 исто така достапно во репозициите за Debian Stable.

Сумирајќи:

Овој начин на инсталирање на конфигурација на веб-сервер не е најоптимален, далеку од тоа, на пример, многумина ќе препорачаат Лак, што според она што го прочитав, прави вистински чуда затоа што сè или скоро сè е зачувано, но, во нашиот случај, ние не треба дека 100% од страницата е секогаш зачувана затоа што не сакаме или треба да одиме во таа крајност. Сепак, појаснувам, како што реков погоре: „колку што прочитав“, јас лично не користев лак до денес, затоа не можам да ви дадам 100% објективно мислење.

Ова ќе биде серија упатства во кои ќе ви покажам како да инсталирате веб-сервер како оној што моментално е хостиран од FromLinux (блог, форум, залепете, итн.). Блогот има 30.000 посети секој ден, скоро 200 корисници пристапуваат истовремено, па дури и така RAM меморијата да не надминува потрошена 500 MB, ова за некои може да биде прекумерна потрошувачка, но ... еј, имаме 3 GB RAM, помалку од 500 MB (што вклучуваат FTP, SSH, итн.) е навистина добро, нели? 🙂

Целата „магија“ не ја прави само Nginx + Spawn_FastCGI + APC, нашиот систем за меморирање блогови е навистина добро конфигуриран и правилата за Nginx се прецизни, ова го прави блогот дури и кога добива многу сообраќаен процес многу помалку PHP отколку што вообичаено, бидејќи има многу веќе кеширани. Ако имате веб-страница со голема побарувачка и имате проблеми со ресурсите, препорачувам без сомнение да проучите за да видите кој систем на кеш меморија ќе работи најдобро за вас, кој најдобро одговара на вашите потреби.

Се надевам дека ви се интересни овие упатства, во секој од нив ќе се обидам да објаснам сè на сеопфатен, детален и што е можно поедноставен начин.

Со почит


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

27 коментари, оставете ги вашите

Оставете го вашиот коментар

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени со *

*

*

  1. Одговорен за податоците: Мигел Анхел Гатон
  2. Цел на податоците: Контролирајте СПАМ, управување со коментари.
  3. Легитимација: Ваша согласност
  4. Комуникација на податоците: Податоците нема да бидат соопштени на трети лица освен со законска обврска.
  5. Складирање на податоци: База на податоци хостирани од Occentus Networks (ЕУ)
  6. Права: Во секое време можете да ги ограничите, вратите и избришете вашите информации.

  1.   Бруно касио dijo

    Многу добро и јасно! Ти честитам!

    1.    КЗКГ ^ Гаара dijo

      Ви благодарам

  2.   Кристофер Кастро dijo

    Многу добро упатство.

    Она што ме исполнува со сомнеж е како тие го конфигурираа серверот за е-пошта.

    1.    КЗКГ ^ Гаара dijo

      MailServer е нешто засебно, односно нема никаква врска со веб-серверот како што знаете

      Сепак, одамна решив да не се комплицирам со MailServer, избрав да користам iRedMail (поддршка за MySQL, LDAP и Postgre) и со соодветни поставки и детали што ги додавам во конфигурациските датотеки, сè работи добро.

  3.   Ротс87 dijo

    Ми се допаѓа статијата, чекам серија написи

    1.    КЗКГ ^ Гаара dijo

      Благодарам, се надевам дека ќе го донесам следниот во понеделник или вторник, тој ќе се занимава со инсталирање и конфигурација на Nginx.

  4.   aca dijo

    Многу добра, вистинска конфигурација, тешко е да се најде, компромисот помеѓу факторите понекогаш е скоро нерешлив, и јас одев пред некое време на nginx, а подоцна и на mariadb (неодамна, мислам пред една година).

    // како што споменав, би било убаво ако ја подигнете можноста за chroot и да користите proxy_cache_path што е исто така корисно. Исто така, споредбата на приклучокот (во случаи што е можно) наспроти приклучокот. и добро дефинирајте го бројот на деца / овен.

    Со почит

    1.    КЗКГ ^ Гаара dijo

      Ви благодариме за коментарот
      Да, се разбира, би било многу убаво да се затвори Nginx во кафез за да се чува одвоен како таков од остатокот од системот, јас не ја разгледав таа можност во овие упатства, ќе видам што можам да направам. За proxy_cache_path, никогаш не сум го користел, ќе прочитам малку за да видам како се одвива.

      Што се однесува до бројот на нишки (мин и максимум), во конфигурацијата на Nginx е очигледно дефинирано, во објавата на Nginx ќе зборувам многу за датотеката .conf

      Повторно, благодарам за коментарот.

  5.   MSX dijo

    Овој вид на HowTos е она што ја прави мрежата навистина моќна за компјутерските научници бидејќи ни заштедува тони часови истражување и тестирање се додека конечно не одлучиме за соодветната опција, благодарам многу!

    Едно прашање, дали работи ова на Debian? Која верзија на ОС и пакети?

    Честитки!

    1.    КЗКГ ^ Гаара dijo

      Ви благодариме.
      Навистина, веб-страниците што известуваат, ги повторуваат и повторуваат вестите веќе има премногу ... потребни се страници што ставаат упатства, тоа е она што му треба на мрежата!

      Да, Debian Wheezy (тековна стабилна), верзиите на пакетите се токму таму во објавата

  6.   елиотим3000 dijo

    Одличен коментар. Ајде да видиме дали направам еден вид Errata со ZPanel X и, патем, направете ја инсталацијата рачно во Debian Wheezy.

  7.   Федерико Антонио Валдес Тујаг dijo

    Одете напред KZKG ^ Gaara !!!, дека Најдобар критериум за вистината е пракса и имате искуство за тоа што го пишувате. Професионална и работна веб-страница. Бејзбол од главната лига, пријателе.

    1.    елиотим3000 dijo

      Тоа е точно. Исто така, кога почнав да играм со веб-серверите што ги инсталирав во Виндоус, вистината е дека Апачи пука во однос на потрошувачката на ресурси ако користите WordPress (во Друпал потроши половина од ресурсите).

  8.   пајтон dijo

    Мислам дека за делот Nginx, ова упатство ќе ни се најде. Сега сакам да инсталирам сервер со Nginx, php, Varnish и MariaDB. Но, се разбира, мора да започнете, а мрзеливоста може да стори многу кога станува збор за борба со сервери и за сега сум задоволен со типичната ламба и мемкаш што имам xDD.

    Честитка.

  9.   АуросЗх dijo

    Одлично, само едно од овие ќе ни се најде 🙂 Друго со нетрпение го очекува тоа.

  10.   Иван Габриел Соса dijo

    Ние ве следиме. Во моментов започнуваме во светот на веб-серверите. Купивме двајца од Хостингер, а еден пријател ни помогна да го конфигурираме од нула (PHP, MySQL, Apache). Тоа е единствената комбинација што се користи во Linux, платформа на која сум од јануари.
    Но, многу ме интересираше оваа тема. На здравје!

  11.   Jозе Мануел dijo

    Никогаш не сум инсталирал веб-сервер, но ако сакам да го сторам тоа, прашање, дали ќе биде потребно ниво за да се разберат упатствата и дали инсталацијата е висока или со основно знаење, дали може да го пробам? Благодарам однапред.

    1.    елиотим3000 dijo

      Вистината е дека не бара многу знаење за да може да се справи со сервер за база на податоци. Ви кажува оној кој веќе го испробал тоа искуство.

  12.   Маурициус dijo

    Здраво, многу е добро што ќе правите со оваа серија објави.

    Јас неодамна инсталирав Nginx + Php Fastcgi + Mariadb. Nginx.

    Сето ова, го направив во Архлинукс, бидејќи таа дистрибуција е единствена од моја гледна точка, што не носи толку добрини како другите. Го ставив во кафезно опкружување и ми создаде многу непријатности да функционирам совршено.

    Сега работи совршено. Иако сум заинтересиран да ги знам вашите мислења, за процесите на децата и татковците, колку повеќе совети ми даваат, толку подобро.

    Сето ова е само за вежбање.
    Опремата има 4 GB DDR2 рам и процесор 2 Ghz Core 2.4duo.

    Поздрав и се радувам на претстојните објави на оваа серија.

  13.   кас dijo

    200 корисници истовремено поврзани?
    Само во одредени периоди од денот, нели? Во спротивно, тоа би ги надминало тие 30.000 дневни посети.

    1.    КЗКГ ^ Гаара dijo

      Да, се разбира, не секогаш има 200 луѓе на Интернет, во овој момент има скоро 40 бидејќи е сè уште рано, за неколку часа ќе надминат 100.

  14.   насилник dijo

    Само за забава, јас едноставно се префрлив од лајти во nginx на мојата работна станица (Symfony2 токму сега), го зедов конф од тука [1], многу едноставно.

    [1] http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2

  15.   Apr4xas dijo

    Чекајќи го продолжението на ова

    1.    КЗКГ ^ Гаара dijo

      Оваа недела мора да го објавам, благодарам за читањето бр

      1.    здравје dijo

        и? многу недостасува?

  16.   Дин dijo

    Добар пост

  17.   НОЕЛ ИВАН dijo

    ДОБРО ПОПЛАДНЕ.
    ПОРАДИ СПЕЦИФИКАЦИИ НА УЧИЛИШТЕН ПРОЕКТ МИ ОДМААТ ДА ГО ИНСТАЛИРАМ NGINX ВО OPENBSD 5.4 IN ORACLE MV VIRTUALBOX да може да употребува PHP, MYSQL меѓу другите, Надами што не сум можел да ги пронајдам информациите што се однесуваат на ова прашање ЈАС погоре.