Kiel instali retservilon kun Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2a Parto: Nginx]

Antaŭ iom da tempo Mi rakontis al vi pri ĉi tiu serio de lerniloj, pri kiel instali kaj agordi servilon por tre postulata gastigado. Ĉi tiu artikolo temas pri instalado kaj agordo de Nginx:

Nginx:

Ni jam diris al vi pri Nginx pli frue en la artikolo Nginx: interesa alternativo al Apache, tie ni diras al vi, ke ĝi estas retservilo kiel Apache, LightHttpd aŭ Cherokee, sed ke kompare kun Apache ĝi elstaras pro sia efikeco kaj malalta aparatara konsumo, ĝuste tial multaj grandaj retejoj kiel Facebook, MyOpera.com, DropBox aŭ eĉ WordPress .com uzas Nginx anstataŭ Apache. En la mondo de Linukso SinceLinux ne estas la sola, kiu uzas Nginx, laŭ mia scio, emsLinux kaj MuyLinux ankaŭ uzas ĝin 🙂

Mia persona sperto kun Nginx datiĝas de kelkaj jaroj, kiam pro neceso mi komencis serĉi malpezajn alternativojn al Apache. Tiutempe Nginx celis la version 0.6 kaj ĝia kongruo kun altpostulaj retejoj faritaj en PHP ne estis la plej optimuma, tamen hodiaŭ ekde la versio 0.9 pluen (v1.2.1 havebla ĉe Debian Stable, v1.4.2 havebla ĉe ArchLinux) multe pliboniĝis, ĝis la punkto, ke kun taŭga agordo kaj kuniĝo de Nginx + PHP ĉio funkcios kiel ĉarmo.

En ĉi tiu lernila serio Mi uzos Nginx-version 1.2.1-2.2, havebla en la Debian Stable repos (Wheezy).

Ĉi tiu lernilo traktas nur kaj ekskluzive pri Nginx, ne pri Nginx + PHP, la kuniĝo de Nginx + PHP kaj ĝia optimumigo aŭ necesa agordo estos traktitaj en la sekva lernilo

1. Instalado:

Ni komencos per la unua afero, instali Nginx de niaj deponejoj.

Ĉiuj ekzekutotaj komandoj estas plenumitaj kun radikaj permesoj, aŭ metante sudon komence de ĉiu linio aŭ ensalutante kiel radiko.

Se en via servilo vi uzas distribuon kiel Debian, Ubuntu aŭ iu derivaĵo en la terminalo, vi devas meti la jenon kaj premi Enigu :

aptitude install nginx

aptitude ne estas instalita defaŭlte en Ubuntu, tamen mi rekomendas al vi instali ĝin kaj uzi ĝin anstataŭ apt-get, ĉar aptitude pli bone administras dependecojn en iuj okazoj

Se vi uzas alian distribuon en via servilo kiel CentOS, Red Hat, Fedora, simple instalu la pakon: nginx de la oficiala deponejo

Persone mi rekomendas neniun derivaĵon de Debian, eĉ ne Ubuntu por serviloj, dum la jaroj miaj spertoj ne estis tute kontentigaj. Mia unua elekto por servilaj operaciumoj estas Debian, tiam mi pensus pri CentOS, finfine iom da BSD

2. Agordo:

Ni jam havas Nginx instalitan, sed evidente ni bezonas agordi ĝin. Mi preparis kunpremitan dosieron en la FTP, kiu enhavas ĉiujn agordojn uzitajn en la serviloj DesdeLinux, ambaŭ por PHP, Nginx, ktp. Ni elŝutu kaj malzipu tiun dosieron:

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

Ĉi tio kreos dosierujon nomatan nginx-spawn-fastcgi, de ĝi ni bezonos du dosierojn por pura Nginx (tio estas, sen ligi ĝin al PHP):

  • nginx.conf - »Ĉefa agorda dosiero de Nginx (ni parolos pri ĝia enhavo poste)
  • index.html - »Simpla html-dosiero, kiun ni uzos por vidi ĉu Nginx vere funkcias por ni en sia plej baza formo
  • mywebsite.net - »Agorda dosiero por simpla retejo, VHost (Virtuala Gastiganto), kiu agordos aliron al la antaŭa html

Ni unue transiru al la dosierujo de agordoj Nginx:

cd /etc/nginx/

Tiam ni forigu ĝian defaŭltan agordon kaj metu nian propran:

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

Ĉi tio, kiel mi diris, estas la ĉefa agorda dosiero de Nginx, en ĝi mi jam difinis la jenon:

uzanto www-datumoj; laboristaj_procezoj 4; pid /var/run/nginx.pid;

Aliro de uzanto al la dosiersistemo (per kiu nginx aliros ĉie), nombro da procezoj kun kiuj funkcii kaj ankaŭ la PID (nginx-procezo-identigilo).

Ni ankaŭ havas tie malgrandan blokon nomatan eventoj (agordoj por eventoj), kiu enhavas linion, kiu indikas la maksimuman nombron de konektoj permesitaj por evento. Sube estas la bloko nomata http.

Ĉi tiu http-bloko estas tiu, kiu enhavas preskaŭ ĉion rilatan al gastigado, almenaŭ multajn aferojn, kiuj interesos vin. Ekzemple, la maksimuma tempo por vivi aŭ atendi (paŭzo), kie estos niaj ĝeneralaj protokoloj (access.log kaj error.log), datuma kunpremo per gzip, kaj ankaŭ aliaj reguloj, kiuj povus esti utilaj en la estonteco.

Post kiam la ĉefa agorda dosiero staros, ni kopiu la dosieron de nia VHost al la disponebla dosierujo

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

Krome ni devas fari simbolan ligon de ĉi tiu dosiero al la reteja dosierujo.

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

Mi klarigas la utilecon havi retejojn kaj retejojn haveblajn.

Ili trovos momentojn, kiam ili devas havi plurajn vhost-dosierojn pretaj kaj agorditaj, ĉar sur tiu servilo ili metos interrete, diras 5 retejoj. Tamen okazas, ke ankoraŭ ne estas la tempo por ebligi 2 el tiuj 5 gastigantoj, sed ili devas havi la dosierojn pretaj, por ke kiam necese ili estu interretaj en la plej mallonga tempo. Vi povas meti tiom da gastigantoj, kiom vi volas, en retejojn haveblajn (retejojn haveblajn), ĉar tiuj, kiujn Nginx legas por meti interrete, estas nur tiuj de retejaj (retejoj ebligitaj), ĝi ankaŭ funkcius en la kontraŭa direkto, se vi volas meti eksterrete (provizore ekzemple) retejon, ne necesas forigi dosierojn de via servilo (dosierojn, kiujn ni bezonos poste), ni simple forigas la simbolan ligon de retej-ebligitaj kaj jen. La utilo havi simbolajn ligojn kaj ne simple kopii la dosieron de unu dosierujo al alia, estas ke kiam ni volas redakti vhost, ne gravas ĉu ni redaktas tiun situantan en ebligita aŭ disponebla, finfine ĝi estas la sama
arkivo.

La dosiero mywebsite.net kiel mi antaŭe diris, vhost kiu servas kiel ekzemplo, tio estas, kaj alivorte, ni devas modifi mywebsite.net kaj establi niajn agordojn.

Ni devas ŝanĝi la jenon:

  • access_log (linio 3): Ĉi tiu estos la vojo de la alira protokola dosiero al ĉi tiu retejo
  • error_log (linio 4): Ĉi tiu estos la vojo de la erara protokola dosiero al ĉi tiu retejo
  • servila nomo (linio 5): la URL, domajno gastigita en tiu dosierujo, ekzemple, se temus pri la FromLinux-forumo ĝi estus: server_name forum.fromlinux.net
  • radiko (linio 6): La vojo al la dosierujo kie estas la html-dosieroj, ni lasu ĉi tion en / var / www / ĉar ĝi estos nur testo
Evidente ili devas indiki en siaj DNS-registroj de sia gastiganta provizanto (uzante CPanel aŭ alian ilon), ke la domajno aŭ subdomajno deklarita en servila_nomo situas sur la IP de ĉi tiu servilo, kiun ili agordas. Tio estas, en la DNS, kie ili kreas subdomajnojn por sia domajno, ili devas deklari, ke la domajno aŭ subdomajno, kiun ili metis en linion 5, troviĝas sur ĉi tiu servilo (ĉi tiu servilo = la IP-adreso de la koncerna servilo)

Nun ni nur bezonas kopii la html-dosieron al la dosierujo, kiun ni difinas en nia dosiero VHost, / var / www /:

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

Tiam ni rekomencas Nginx kaj jen:

service nginx restart

Kaj voila, io tia aperos:

nginx-pure-test-site-html

 

Mi memorigas vin, ke ni unue laboras kun Nginx por HTML, sen havi PHP-subtenon, ĉi tiu instalo de PHP kaj ligo al Nginx estos la enhavo de la sekva lernilo (post kelkaj tagoj, mi promesas).

Ĉiuokaze ĉi tio estas la instruilo pri instalado kaj agordo de Nginx, por ke ĝi funkciu pura, do HTML-ejo, mi esperas, ke ĝi interesos vin.

Mi klarigos, ke jes, ankoraŭ ekzistas bonaj praktikoj uzeblaj, tamen ni atendu fini ĉi tiun serion de lerniloj kaj tiam ni taksos la finan rezulton de la laboro 😉

salutoj


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

26 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   nelson diris

    Dankon, tre helpema!

    1.    KZKG ^ Gaara diris

      Dankon pro komento

  2.   ĉasisto diris

    En malantaŭaj havenoj estas nginx 1.4 ..

    1.    KZKG ^ Gaara diris

      Jes, sed ĉe servilo en produktado mi uzas nenion el tio 😀

      1.    ĉasisto diris

        Per "ĝi" vi celas la plej novan stabilan kaj elprovitan version eldonitan de nginx, vi sonigas ĝin kvazaŭ ĝi taŭgas. ~ _ ~

        1.    KZKG ^ Gaara diris

          Ha, venu, estas ke ... sur la serviloj mi neniam ŝatis uzi aliajn repos, aŭ malantaŭajn havenojn aŭ ion similan 🙂

      2.    Rafaelo Castro diris

        Ĉiam stabila sur serviloj, mi lernis tion antaŭ jaroj.

        1.    ĉasisto diris

          Nginx 1.4 estas stabila ekde la pasinta aprilo, en malantaŭaj havenoj ĝi estas 1.4.1-3.

          2013-04-24

          nginx-1.4.0-stabila versio estis publikigita, kun multaj novaj funkcioj evoluigitaj en la branĉo 1.3.x - subteno por prokurado de WebSocket-ligoj, OCSP-agrafado, SPDY-modulo, gunzip-filtrilo kaj pli.

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

          1.    Rafaelo Castro diris

            Vi pravas pri tio, kion vi diras, mia ĉapelo malŝaltas.

  3.   chinoloco diris

    Dankon pro dividado, mi nuntempe praktikas vian plej malnovan afiŝon.
    Mi plenigos vin per demandoj XD

    1.    KZKG ^ Gaara diris

      Dankon pro legado de 🙂
      Vi scias ajnan dubon aŭ demandon, ni estas ĉi tie por helpi, tie vi havas la forumon.desdelinux.net, kie kune ni provos doni al vi la plej bonan solvon.

      salutoj

      1.    Gibran barrera diris

        Mi havas demandon, ke mi havas LAMP [Linukso (Debian Wheezy), Apache, PHP kaj MySQL] funkcianta sur mia servilo por WordPress kaj Owncloud, kiel mi migras al Ngnix, alia demando estas kia diferenco estas inter Ngnix kaj Lighttpd.

        1.    KZKG ^ Gaara diris

          La plej granda komplikaĵo aŭ malfacileco migri de Apache al Nginx estas la agordoj de ĉiu retejo, tio estas specife la .htaccess, kiun vi uzas.

          La .htaccess estas la plej kompleksa kiam vi ŝanĝas al Nginx, ĉar ili estas malsamaj agordoj, kiujn vi devas enmeti en la Nginx VHost.

          Pri LightHTTPd kaj Nginx ... Mi ne scias, mi uzis LightHTTPd nur unufoje antaŭ multaj jaroj, nuntempe mi tute ne scias kiel funkcias ĝia disvolviĝo, specife uzante PHP.

  4.   eliotime3000 diris

    NGINX aspektas sufiĉe simpla kompare kun Apache. Atendante la venontan epizodon por povi kompletigi ĝin per PHP

  5.   Mauricio diris

    Mi atendas la konsilojn por optimigi pli al nginx 😀

    Cetere Gaara, vi povas inkluzivi en via sekva lernilo, kiel efektivigi SSL-subtenon.

    Salutojn.

    1.    KZKG ^ Gaara diris

      La venontaj konsiloj efektive estas optimumigi la PHP-prilaboradon, kaŝmemoron al retejoj, mi povas doni la ekzemplon de la agordo, kiun ni uzas en FromLinux por Nginx + Wordpress + W3_Total_Cache 🙂

  6.   kaiser diris

    Dankon bona kontribuo.

  7.   Apr4xas diris

    Kaj la gvidilo por archlinux kiam? xD

    1.    KZKG ^ Gaara diris

      En Arch ĝi estis tre simila, nur la nomoj de la pakaĵoj ŝanĝiĝas sed ... la konf estas preskaŭ identa

      Sed kiu havas produktan servilon kun Arch? 😀

  8.   Apr4xas diris

    Saluton,

    Estas mi denove xD ...

    Mi sekvis viajn paŝojn aplikante ilin sur maŝino kun archlinux kaj mi havas la jenan problemon:

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

    Ajna sugestoj 😀

  9.   rhiz diris

    Jo ... xox, mi volas nur internan servilon, tio estas, mi nur volas anstataŭigi xampp, ĉu mi faru ĉion ĉi?

    1.    KZKG ^ Gaara diris

      Se vi volas, vi povas efektivigi ĉi tion (kion mi ripetas, ĝi estas kun kio DL funkcias), fakte mian virtualan servilon (kiun mi uzas por disvolviĝo kaj testado) mi faris ĝin kun ĉi tiu sama afero, kiun mi klarigas.

      Tio estas, vi povas aŭ forigi XAMPP kaj meti ĉi tiun varianton kaj ĝi funkcios bone, aŭ se vi volas forlasi XAMPP ... ĝi ankoraŭ funkcios por vi.

      La pozitiva punkto de uzi ĉi tion, kiun mi montras, estas la tre malalta konsumo de aparataro kompare kun Apache, sed, sur via persona komputilo, kiu ne estas tre postulata gastigado, malproksime ... se XAMPP funkcias bone por vi, mi ne vidu kial forigi ĝin 🙂

  10.   isaac diris

    Mi jam havas mian Linuksan servilon funkciantan (Debian, Nginx, MySQL kaj PHP) Mi malfacile sukcesis, ke PHP funkciu kun Nginx, ĉar mi kutimiĝis al la simpla Apache-Retservilo.

    Nu, mia demando estas: Ĉu iu scias, kiel mi povas direkti testan domajnon, kiun mi aĉetis al mia servilo? Mi ŝatus provi mian domajnon .com por vidi kiel ĝi funkcias, sed mi ne havas la plej etan ideon kiel fari ĝin, ĉar mi ĉiam uzis NOIP-adreson por aliri ĝin per la noip DUC.

    Mi esperas, ke iu povas helpi min, Dankon!

  11.   Abraham diris

    Mi ricevas ĉi tion provante konekti al via ftp:

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

    HTTP-peto sendita, atendante respondon ... 404 Ne Trovita
    2015-11-23 17:46:30 ERARO 404: Ne Trovita.

  12.   ryan diris

    Mi havas mian CentOS-servilon funkciantan (Gunicorn, Nginx, PHP) necesis multe da laboro por ke ili funkciu, sed la punkto, kiam mi blokiĝis, estas, ke la TTT-paĝo, kiun mi volas lanĉi, bezonas la agordon de domajna provizanto ĉi-kaze. , Do nun mi ne scias kiel daŭrigi.

  13.   ricardo diris

    Ĉu vi povus dividi la agordajn dosierojn kun mi, ĉar mi ne povas elŝuti ilin, mi petas