Kā instalēt tīmekļa serveri ar Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2.daļa: Nginx]

Pirms kāda laika Es jums pastāstīju par šo apmācību sēriju, par to, kā instalēt un konfigurēt serveri augsta pieprasījuma mitināšanai. Šis raksts būs par Nginx instalēšanu un konfigurēšanu:

Nginx:

Mēs jau teicām jums par Nginx iepriekš rakstā Nginx: interesanta alternatīva Apache, tur mēs jums sakām, ka tas ir tīmekļa serveris, piemēram, Apache, LightHttpd vai Cherokee, taču tas, salīdzinot ar Apache, izceļas ar savu veiktspēju un zemo aparatūras patēriņu, tieši šī iemesla dēļ daudzas lielas vietnes, piemēram, Facebook, MyOpera.com, DropBox vai pat WordPress .com Apache vietā izmantojiet Nginx. Linux pasaulē SinceLinux nav vienīgais, kas izmanto Nginx, cik zinu, to izmanto arī emsLinux un MuyLinux 🙂

Mana personīgā pieredze ar Nginx aizsākās vairākus gadus, kad nepieciešamības dēļ sāku meklēt vieglas alternatīvas Apache. Tajā laikā Nginx izmantoja versiju 0.6, un tās saderība ar PHP izveidotajām vietnēm ar visaugstāko pieprasījumu nebija optimālākā, tomēr mūsdienās no versijas 0.9 (v1.2.1 pieejams vietnē Debian Stable, v1.4.2 pieejams vietnē ArchLinux) ir daudz uzlabojusies, līdz ar pareizu Nginx + PHP konfigurāciju un savienojumu viss darbosies kā šarms.

Šajā apmācību sērijā Es izmantošu Nginx versiju 1.2.1-2.2, pieejams Debian Stable repos (Wheezy).

Šajā apmācībā tiek apskatīts tikai un vienīgi par Nginx, nevis par Nginx + PHP, Nginx + PHP savienojums, kā arī tā optimizācija vai nepieciešamā konfigurācija tiks apskatīta nākamā apmācība

1. Uzstādīšana:

Mēs sāksim ar pirmo lietu, instalējiet Nginx no mūsu krātuvēm.

Visas komandas, kas tiks izpildītas, tiek izpildītas ar root tiesībām, vai nu ieliekot sudo katras rindas sākumā, vai arī piesakoties kā root

Ja savā serverī jūs izmantojat tādu izplatīšanu kā Debian, Ubuntu vai kādu atvasinājumu terminālā, jums jāievieto sekojošais un jānospiež ienākt :

aptitude install nginx

Ubuntu pēc noklusējuma nav instalēts, bet es iesaku to instalēt un izmantot nevis apt-get, jo noteiktos gadījumos piemērotība labāk pārvalda atkarības

Ja savā serverī izmantojat citu izplatīšanu, piemēram, CentOS, Red Hat, Fedora, vienkārši instalējiet pakotni: nginx no oficiālās repozitorija

Personīgi es neiesaku nevienu Debian atvasinājumu, pat ne Ubuntu serveriem, gadu gaitā mana pieredze nav bijusi pilnīgi apmierinoša. Mana pirmā izvēle servera operētājsistēmai ir Debian, tad es domāju par CentOS, visbeidzot kādu BSD

2. Konfigurācija:

Mums jau ir instalēts Nginx, taču mums tas acīmredzami jākonfigurē. Esmu sagatavojis saspiestu failu FTP, kurā ir visas DesdeLinux serveros izmantotās konfigurācijas gan PHP, gan Nginx utt. Lejupielādēsim un izpakosim šo failu:

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

Tādējādi tiks izveidota mape ar nosaukumu nginx-spawn-fastcgi, no kuras tīram Nginx būs nepieciešami divi faili (tas ir, nesaistot to ar PHP):

  • nginx.conf - »Galvenais Nginx konfigurācijas fails (par tā saturu mēs runāsim vēlāk)
  • index.html - »Vienkāršs html fails, kuru izmantosim, lai redzētu, vai Nginx patiešām darbojas mums visvienkāršākajā formā
  • mywebsite.net - »Konfigurācijas fails vienkāršai vietnei, VHost (virtuālais resursdators), kas konfigurēs piekļuvi iepriekšējam html

Vispirms pārejam uz mapi Nginx iestatījumi:

cd /etc/nginx/

Tad noņemsim tā noklusējuma konfigurāciju un ievietosim savu:

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

Šis, kā jau teicu, ir galvenais Nginx konfigurācijas fails, tajā es jau esmu definējis sekojošo:

lietotāja www dati; strādnieku_procesi 4; pid /var/run/nginx.pid;

Lietotāja piekļuve failu sistēmai (ar kuru nginx piekļūs visur), procesu skaits, ar kuriem strādāt, kā arī PID (nginx procesa id).

Mums ir arī neliels bloks, ko sauc par notikumiem (notikumu iestatījumi), kurā ir rinda, kas norāda maksimālo atļauto savienojumu skaitu vienā notikumā. Zemāk ir bloks ar nosaukumu http.

Šis http bloks ir tas, kas satur gandrīz visu, kas saistīts ar mitināšanu, vismaz daudzas lietas, kas jūs interesēs. Piemēram, maksimālais laiks dzīvošanai vai gaidīšanai (taimauts), kur būs mūsu vispārējie žurnāli (access.log un error.log), datu saspiešana, izmantojot gzip, kā arī citi noteikumi, kas varētu būt noderīgi nākotnē.

Kad galvenais konfigurācijas fails ir ievietots, kopēsim failu no mūsu VHost uz vietnēm pieejamo mapi

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

Turklāt no šī faila mums jāizveido simboliska saite uz mapi, kurā iespējotas vietnes.

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

Es izskaidroju vietņu un vietņu pieejamības lietderību.

Viņi atradīs brīžus, kad viņiem būs jābūt gataviem un konfigurētiem vairākiem vhost failiem, jo ​​tajā serverī viņi ievietos tiešsaistē, teiksim, 5 vietnes. Tomēr gadās, ka vēl nav īstais laiks, lai iespējotu 2 no šiem 5 hostistiem, taču failiem jābūt gataviem, lai vajadzības gadījumā tie būtu tiešsaistē pēc iespējas īsākā laikā. Vietnēs pieejamās (vietnēs pieejamās) varat ievietot tik daudz vhostu, cik vēlaties, jo tie, kurus Nginx lasa, lai ievietotu tiešsaistē, ir tikai vietnēm (kurās ir iespējotas vietnes), tas darbotos arī pretēji, ja vēlaties ievietot vietni bezsaistē (piemēram, īslaicīgi), nav nepieciešams izdzēst failus no sava servera (faili, kas mums būs nepieciešami vēlāk), mēs vienkārši noņemam vietņu iespējoto simbolisko saiti, un viss. Simbolisku saišu un nevis tikai faila kopēšanas no vienas mapes uz citu lietderība ir tāda, ka tad, kad mēs vēlamies rediģēt vhost, nav svarīgi, vai mēs rediģējam to, kas atrodas iespējotā vai pieejamā, galu galā tas ir tas pats
arhīvu.

Fails mywebsite.net, kā es jau teicu iepriekš, ir hosthosts, kas kalpo kā piemērs, tas ir, un, citiem vārdiem sakot, mums ir jāpārveido mywebsite.net un jāizveido konfigurācijas.

Mums jāmaina:

  • access_log (3. rindiņa): Šis būs piekļuves žurnāla faila ceļš uz šo vietni
  • error_log (4. rindiņa): Šis būs kļūdu žurnāla faila ceļš uz šo vietni
  • servera_nosaukums (5. rindiņa): URL, domēns, kas tiek mitināts šajā mapē, piemēram, ja tas būtu FromLinux forums, tas būtu: servera_nosaukums forum.fromlinux.net
  • sakne (6. rinda): ceļš uz mapi, kur atrodas html faili, atstāsim to mapē / var / www /, jo tas būs tikai tests
Acīmredzot viņu mitināšanas pakalpojumu sniedzēja DNS ierakstos (izmantojot CPanel vai citu rīku) ir jānorāda, ka domēns vai apakšdomēns, kas deklarēts server_name, atrodas šī konfigurētā servera IP. Tas ir, DNS, kurā viņi izveido apakšdomēnus savam domēnam, viņiem jāpaziņo, ka domēns vai apakšdomēns, ko viņi ievietojuši 5. rindā, atrodas šajā serverī (šis serveris = attiecīgā servera IP adrese)

Tagad mums vienkārši jākopē html fails mapē, kuru mēs definējam mūsu VHost failā / var / www /:

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

Tad mēs restartējam Nginx, un tas ir viss:

service nginx restart

Un voila, parādīsies kaut kas līdzīgs šim:

nginx-pure-test-site-html

 

Es jums atgādinu, ka mēs vispirms strādājam ar HTML programmatūru Nginx, bez PHP atbalsta. Šī PHP instalēšana un saistīšana ar Nginx būs nākamās apmācības saturs (es apsolu pēc dažām dienām).

Jebkurā gadījumā šī ir Nginx instalēšanas un konfigurēšanas apmācība, lai tā darbotos tīri, tas ir, HTML vietne, es ceru, ka tā jūs interesēs.

Es paskaidrošu, ka jā, joprojām ir labākās prakses, kuras var izmantot, tomēr pagaidīsim, kamēr pabeigsim šo apmācību sēriju, un tad mēs novērtēsim darba gala rezultātu 😉

Sveicieni


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

26 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   nelsons teica

    Paldies, ļoti noderīgi!

    1.    KZKG ^ Gaara teica

      Paldies par komentāru

  2.   dunter teica

    Atpūtas ostās ir nginx 1.4 ..

    1.    KZKG ^ Gaara teica

      Jā, bet ražošanas serverī es to neizmantoju 😀

      1.    dunter teica

        Ar to "jūs" domājat jaunāko stabilo un pārbaudīto versiju, ko izdevis nginx, jūs liekat izklausīties tā, it kā tā būtu piemērota no sid. ~ _ ~

        1.    KZKG ^ Gaara teica

          Ah come on, tas ir ... serveros man nekad nav paticis izmantot citus repo, backports vai kaut ko tamlīdzīgu 🙂

      2.    Rafaels Kastro teica

        Vienmēr stabils serveros, es to uzzināju pirms gadiem.

        1.    dunter teica

          Nginx 1.4 ir stabils kopš pagājušā gada aprīļa, aizmugures ostās tas ir 1.4.1-3.

          2013-04-24

          Ir izlaista stabilā nginx-1.4.0 versija, kas iekļauj daudzas jaunas funkcijas, kas izstrādātas 1.3.x filiālē - atbalsts WebSocket savienojumu starpniekserveriem, OCSP skavošana, SPDY modulis, gunzip filtrs un citas.

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

          1.    Rafaels Kastro teica

            Tev taisnība, ko saki, mana cepure nost.

  3.   chinoloco teica

    Paldies, ka dalījāties, es pašlaik izmantoju jūsu vecāko ziņu.
    Es jūs aizpildīšu ar jautājumiem XD

    1.    KZKG ^ Gaara teica

      Paldies, ka izlasījāt 🙂
      Jebkuras šaubas vai jautājumi, par kuriem jūs zināt, mēs esam šeit, lai palīdzētu, tur jums ir forum.desdelinux.net, kur mēs kopā centīsimies sniegt jums labāko risinājumu

      Sveicieni

      1.    Gibran barrera teica

        Man ir jautājums, ka manā serverī WordPress un Owncloud darbojas LAMP [Linux (Debian Wheezy), Apache, PHP un MySQL), kā es varu migrēt uz Ngnix, cits jautājums ir kāda atšķirība starp Ngnix un Lighttpd.

        1.    KZKG ^ Gaara teica

          Vislielākās komplikācijas vai grūtības migrēt no Apache uz Nginx ir katras vietnes konfigurācijas, tas ir, īpaši jūsu izmantotais .htaccess.

          .Htaccess ir vissarežģītākais, pārejot uz Nginx, jo tās ir dažādas konfigurācijas, kas jums jāievieto Nginx VHost.

          Par LightHTTPd un Nginx ... Es nezinu, es pirms daudziem gadiem izmantoju LightHTTPd tikai vienu reizi, šobrīd man nav ne mazākās nojausmas, kā notiek tā izstrāde, īpaši izmantojot PHP.

  4.   3000 teica

    NGINX izskatās diezgan vienkārši, salīdzinot ar Apache. Gaida nākamo epizodi, lai varētu to papildināt ar PHP

  5.   Maurīcija teica

    Es gaidu padomus, kā optimizēt vairāk, lai nginx 😀

    Starp citu, Gaara savā nākamajā apmācībā varat iekļaut, kā ieviest SSL atbalstu.

    Sveicieni.

    1.    KZKG ^ Gaara teica

      Nākamie padomi ir PHP apstrādes optimizēšana, kešatmiņa uz vietnēm. Es varu minēt konfigurācijas piemēru, ko mēs izmantojam FromLinux for Nginx + Wordpress + W3_Total_Cache 🙂

  6.   ķeizars teica

    Paldies par labu ieguldījumu.

  7.   Apr4xas teica

    Un kad? xD

    1.    KZKG ^ Gaara teica

      Archā tas ir bijis ļoti līdzīgs, mainās tikai paku nosaukumi, bet ... conf ir gandrīz identisks

      Bet kam ir ražošanas serveris ar Arch? 😀

  8.   Apr4xas teica

    Hi tur,

    Es atkal esmu xD ...

    Es sekoju jūsu darbībām, tos piemērojot mašīnā ar archlinux, un man ir šāda problēma:

    [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)

    Visi ieteikumi 😀

  9.   Rhiz teica

    Jo ... xox, es gribu tikai iekšēju serveri, tas ir, es gribu aizstāt tikai xampp, vai man tas viss būtu jādara?

    1.    KZKG ^ Gaara teica

      Ja vēlaties, varat to ieviest (ko es atkārtoju, tas ir tas, ar ko DL darbojas), faktiski mans virtuālais serveris (kuru izmantoju izstrādei un testēšanai), es to esmu izdarījis ar to pašu, ko es izskaidroju.

      Tas ir, jūs varat vai nu noņemt XAMPP un ievietot šo variantu, un tas darbosies labi, vai arī, ja vēlaties pamest XAMPP ... tas joprojām darbosies jums.

      Šīs izmantošanas pozitīvais aspekts, ko es parādīju, ir ļoti zems aparatūras patēriņš, salīdzinot ar Apache, taču jūsu personālajā datorā, kas nav īpaši pieprasīts mitinātājs, tālu no tā ... ja XAMPP jums darbojas labi, es nesaprotu, kāpēc to noņemt 🙂

  10.   Isaac teica

    Man jau darbojas mans Linux serveris (Debian, Nginx, MySQL un PHP). Man bija grūti panākt, lai PHP darbotos ar Nginx, jo biju pieradis pie vienkāršā Apache tīmekļa servera.

    Nu, mans jautājums ir: Vai kāds zina, kā es varu savam serverim norādīt testa domēnu, kuru esmu nopircis? Es gribētu izmēģināt savu .com domēnu, lai uzzinātu, kā tas darbojas, taču man nav ne mazākās nojausmas, kā to izdarīt, jo es vienmēr esmu izmantojis NOIP adresi, lai tai piekļūtu ar noip DUC.

    Es ceru, ka kāds man var palīdzēt, paldies!

  11.   Abraham teica

    Es to saprotu, mēģinot izveidot savienojumu ar jūsu ftp:

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

    HTTP pieprasījums nosūtīts, gaida atbildi ... 404 nav atrasts
    2015-11-23 17:46:30 KĻŪDA 404: nav atrasta.

  12.   Ryan teica

    Man serveris darbojas CentOS (Gunicorn, Nginx, PHP). Tas man maksāja daudz darba, lai tie darbotos, taču es iestrēgušu to, ka vietnei, kuru vēlos palaist, ir nepieciešama domēna nodrošinātāja konfigurācija gadījums Go Daddy, Tāpēc es nezinu, kā turpināt.

  13.   Ricardo teica

    Vai jūs varētu koplietot konfigurācijas failus ar mani, jo, lūdzu, tos nevaru lejupielādēt