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

Пред некое време Јас ти кажав за оваа серија на упатства, за тоа како да инсталирате и конфигурирате сервер за хостинг со голема побарувачка. Оваа статија ќе биде за инсталирање и конфигурирање на Nginx:

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 (Визи).

Ова упатство се занимава само и исклучиво за Nginx, не за Nginx + PHP, унијата на Nginx + PHP, како и неговата оптимизација или потребната конфигурација ќе бидат разгледани во следно упатство

1. Инсталација:

Willе започнеме со првото нешто, инсталирајте Nginx од нашите складишта.

Сите команди што треба да се извршат се извршуваат со root-дозволи, или со ставање sudo на почетокот на секоја линија или со најавување како root

Ако на вашиот сервер користите дистрибуција како што се Debian, Ubuntu или некој дериват во терминалот, мора да го ставите следново и да притиснете Внесете :

aptitude install nginx

способноста не е инсталирана стандардно во Ubuntu, сепак препорачувам да ја инсталирате и да ја користите наместо apt-get, бидејќи способноста прави подобро управување со зависностите во одредени прилики

Во случај да користите друга дистрибуција на вашиот сервер како CentOS, Red Hat, Fedora, едноставно инсталирајте го пакетот: nginx од официјалното складиште

Лично, не препорачувам ниту еден дериват на Debian, дури ни Ubuntu за сервери, со текот на годините моите искуства не беа целосно задоволителни. Мојот прв избор за оперативни системи на сервер е Debian, тогаш би помислив на CentOS, конечно и на некои BSD

2. Конфигурација:

Веќе имаме инсталирано Nginx, но очигледно треба да го конфигурираме. Подготвив компресирана датотека на FTP што ги содржи сите конфигурации што се користат во серверите DesdeLinux, како за PHP, Nginx, итн. Ајде да ја преземеме и отпакуваме таа датотека:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

Ова ќе создаде папка наречена nginx-spawn-fastcgi, од неа ќе ни требаат две датотеки за чист Nginx (т.е. без да го поврземе со PHP):

  • nginx.conf - »Главна конфигурациска датотека на Nginx (за нејзината содржина ќе разговараме подоцна)
  • index.html - »Едноставна html-датотека што ќе ја искористиме за да видиме дали Nginx навистина работи за нас во својата најосновна форма
  • mywebsite.net - »Конфигурациска датотека за едноставна веб-страница, VHost (виртуелен домаќин) што ќе конфигурира пристап до претходниот html

Ајде прво да се преселиме во папката за поставки на Nginx:

cd /etc/nginx/

Потоа, да ја отстраниме нејзината стандардна конфигурација и да ја ставиме нашата:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

Ова, како што реков, е главната датотека за конфигурација на Nginx, во неа веќе го дефинирав следново:

кориснички www-податоци; процеси на работници 4; pid /var/run/nginx.pid;

Кориснички пристап до датотечниот систем (со кој nginx ќе има пристап насекаде), број на процеси за работа и исто така PID (nginx id id).

Имаме и таму мал блок наречен настани (поставки за настани) што содржи линија што покажува максимален број на дозволени врски по настан. Подолу е блокот наречен http.

Овој блок http е оној што содржи скоро сè што е поврзано со хостирање, барем многу работи што ќе ве интересираат. На пример, максималното време за живеење или чекање (тајмаут), каде ќе бидат нашите општи логови (пристап.лог и грешка.лог), компресија на податоци со употреба на gzip, како и други правила што можат да бидат корисни во иднина.

Откако ќе се постави главната конфигурациска датотека, ајде да ја копираме датотеката од нашиот VHost во папката што е достапна за веб-страниците

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

Покрај тоа, ние мора да направиме симболична врска од оваа датотека до папката овозможена за страници.

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

Јас ја објаснувам корисноста да се имаат веб-страници овозможени и достапни.

Beе има моменти кога тие мора да имаат подготвени и конфигурирани неколку датотеки vhost, бидејќи на тој сервер ќе стават на интернет, да речеме 5 страници. Како и да е, се случува дека сè уште не е време да се овозможат 2 од тие 5 вухтони, но тие мора да ги имаат датотеките подготвени, така што кога е потребно, да бидат онлајн во најкус можен рок. Тие можат да стават онолку вухови колку што сакаат на достапни страници, бидејќи оние што Nginx ги чита за да ги постави на Интернет, се само оние на веб-страниците, тоа би функционирало и во спротивна насока, во случај да сакаат да стават офлајн ( привремено на пример) страница, нема потреба да бришете датотеки од вашиот сервер (датотеки што ќе ни требаат подоцна), ние едноставно ја отстрануваме симболичката врска со веб-страниците овозможени и тоа е тоа. Корисноста да имате симболични врски и едноставно да не ја копирате датотеката од една папка во друга, е дека кога сакаме да уредиме vhost, не е важно дали ќе го уредиме оној што се наоѓа во овозможен или достапен, на крајот е исто
архива

Датотеката mywebsite.net како што реков претходно, vhost што служи како пример, односно со други зборови, ние мора да ја измениме mywebsite.net и да ги утврдиме нашите конфигурации.

Ние мора да го смениме следново:

  • пристап_лог (линија 3): Ова е патот на датотеката за пристап до дневникот до оваа страница
  • error_log (линија 4): Ова е патот на датотеката за евиденција на грешки до оваа страница
  • име на сервер (линија 5): URL-то, доменот што е хостиран во таа папка, на пример, да беше форумот FromLinux ќе беше: име на server_fromlinux.net
  • root (линија 6): Патеката до папката каде што се датотеките html, ајде да го оставиме ова во / var / www / бидејќи тоа ќе биде само тест
Очигледно, тие мора да имаат наведено во нивните DNS записи на нивниот хостинг провајдер (користејќи CPanel или друга алатка) дека доменот или поддоменот деклариран во името на серверот се наоѓа на IP на овој сервер што го конфигурираат. Тоа е, во DNS каде што создаваат поддомени за нивниот домен, тие мора да изјават дека доменот или поддоменот што го ставија во линија 5 се наоѓа на овој сервер (овој сервер = IP адреса на серверот за кој станува збор)

Сега треба само да ја копираме html-датотеката во папката што ја дефинираме во нашата датотека VHost, / var / www /:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

Потоа го рестартираме Nginx и тоа е тоа:

service nginx restart

И воила, ќе се појави вакво нешто:

nginx-чисто-тест-место-html

 

Потсетувам дека прво работиме со Nginx за HTML, без да имаме поддршка за PHP, инсталирајте PHP и поврзете го со Nginx ќе биде содржината на следното упатство (ветувам за неколку дена).

Како и да е, ова е упатство за инсталација и конфигурација на Nginx, така што работи чисто, односно HTML-страница, се надевам дека ќе ве интересира.

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

Со почит


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

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

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

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

*

*

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

  1.   Nelson dijo

    Ви благодариме, многу корисно!

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

      Ви благодариме за коментарот

  2.   насилник dijo

    Во backports постои nginx 1.4 ..

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

      Да, но на сервер во производство не користам ништо од тоа

      1.    насилник dijo

        Под „тоа“ мислиш на најновата стабилна и тестирана верзија објавена од nginx, правиш да звучи како да е apt-pinning од sid. ~ _

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

          Ајде, дали е тоа ... на серверите никогаш не сум сакал да користам други репоа, или backport или нешто слично

      2.    Рафаел Кастро dijo

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

        1.    насилник dijo

          Nginx 1.4 е стабилен од минатиот април, во backports е 1.4.1-3.

          -2013 04 24-

          Објавена е стабилна верзија nginx-1.4.0, која вклучува многу нови функции развиени во гранката 1.3.x - поддршка за прокси на врски на WebSocket, спојување на OCSP, модул SPDY, филтер за патент и повеќе.

          http://nginx.org/en/CHANGES-1.4

          1.    Рафаел Кастро dijo

            Во право си во тоа што го кажуваш, капа ми е исклучена.

  3.   хинолоко dijo

    Ви благодариме за споделувањето, во моментов го практикувам вашиот најстар пост.
    Toе те наполнам со прашања XD

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

      Ви благодариме за читањето
      Било какво сомневање или прашање што знаете, ние сме тука да помогнеме, тука имате forum.desdelinux.net каде заедно ќе се обидеме да ви го дадеме најдоброто решение

      Со почит

      1.    Ibибран барера dijo

        Имам прашање Имам LAMP [Linux (Debian Wheezy), Apache, PHP и MySQL] кој работи на мојот сервер за WordPress и Owncloud, како да мигрирам во Ngnix, друго прашање е каква разлика има помеѓу Ngnix и Lighttpd.

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

          Најголемата компликација или тешкотија за миграција од Apache во Nginx се конфигурациите на секоја страница, односно конкретно .htaccess што го користите.

          .Htaccess е најсложен кога се префрлате на Nginx, бидејќи тие се различни конфигурации што мора да ги ставите во Nginx VHost.

          За LightHTTPd и Nginx… Не знам, јас користев LightHTTPd само еднаш пред многу години, во моментов немам идеја како се одвива неговиот развој, поточно користејќи PHP.

  4.   елиотим3000 dijo

    NGINX изгледа прилично јасна во споредба со Apache. Чекајќи ја следната епизода за да можеме да ја надополниме со PHP

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

    Чекам совети за повеќе да оптимизирам на nginx

    Патем, Гаара, можете да вклучите во следното упатство за тоа како да ја имплементирате SSL-поддршката.

    Поздрав.

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

      Советите што доаѓаат се всушност за оптимизирање на PHP обработката, кешот на страници, можам да ставам пример за конфигурацијата што ја користиме во FromLinux за Nginx + WordPress + W3_Total_Cache ache

  6.   кајзер dijo

    Ви благодарам добар придонес.

  7.   Apr4xas dijo

    А, водичот за архлинукс кога? xD

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

      Во Арх беше многу слично, само имињата на пакетите се менуваат, но ... конф е скоро идентичен

      Но, кој има сервер за производство со Arch? 😀

  8.   Apr4xas dijo

    Здраво,

    Јас сум повторно xD ...

    Ги следев вашите чекори применувајќи ги на машина со архлинукс и го имам следниот проблем:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    Какви било предлози

  9.   Риза dijo

    Jo… xox, сакам само внатрешен сервер, односно сакам само да го заменам xampp, дали треба да го направам сето ова?

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

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

      Тоа е, можете или да го отстраните XAMPP и да ја ставите оваа варијанта и тоа ќе работи добро, или ако сакате да го напуштите XAMPP ... сепак ќе работи за вас.

      Позитивната точка на користење на ова што ја покажувам е многу мала потрошувачка на хардвер во споредба со Apache, но, на вашиот персонален компјутер, што не е хостинг со голема побарувачка, далеку од тоа… ако XAMPP работи добро за вас, јас не видете зошто да го отстраните

  10.   Исак dijo

    Веќе имам извршен сервер за Линукс (Debian, Nginx, MySQL и PHP) Тешко ми падна PHP да работи со Nginx затоа што бев навикнат на едноставниот веб-сервер Apache.

    Па моето прашање е: Дали некој знае како можам да покажам тест-домен што го купив на мојот сервер? Би сакал да го пробам мојот домен .com за да видам како работи, но немам ни најмала идеја како да го направам тоа, затоа што секогаш користев адреса на NOIP за пристап до неа со noip DUC.

    Се надевам дека некој може да ми помогне, благодарам!

  11.   Авраам dijo

    Ова го добивам кога се обидувам да се поврзам на вашиот ftp:

    cd && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && катран xf nginx-spawn-fastcgi.tar.gz

    HTTP-барањето е испратено, се чека одговор 404… Не е пронајдено
    2015-11-23 17:46:30 ГРЕШКА 404: Не е пронајдено.

  12.   Ryan dijo

    Имам оперативен сервер CentOS (Gunicorn, Nginx, PHP) ми требаше многу работа да ги натерам да работам, но точката каде што заглавив е дека на веб-страницата што сакам да ја стартувам е потребна конфигурацијата на давателот на домен во овој случај Оди тато , Значи, во овој момент не знам како да продолжам.

  13.   Ricardo dijo

    Може ли да ги споделите конфигурациските датотеки со мене бидејќи не можам да ги преземам