Akèy VHosts miltip ak itilizatè diferan nan Nginx

Bagay ki pi nòmal nan mond lan lè ou gen yon sèvè, se yo reflechi sou sekirite ak plis sekirite, ou pa janm ka paranoya ase

Yon pratik yon ti jan komen ak anyen rekòmande, se yo sèvi ak itilizatè a menm pou tout baz done, vin pi mal si yo itilize rasin, ki enkwayab jan li ka sanble, gen moun ki (akòz vagabondaj oswa inyorans) fè sa, mwen deja pale sou rezon ki fè ou pa ta dwe aji tankou sa a nan yon lòt pòsKoulye a, li lè yo eksplike ki jan ak poukisa li se pi bon separe pwosesis la sèvè entènèt nan itilizatè diferan, tan sa a li pral lè l sèvi avèk Nginx.

DedicatedServer_SubImage

Ki sa ki nan itilizatè yo ak sèvè entènèt?

Pou eksplike li nan yon fason kout ak senp, sèvè entènèt la (apache, nginx, kèlkeswa sa) bezwen louvri pwosesis nan sistèm lan, pwosesis ki pral yo menm ki pran dosye yo soti nan HDD a (imaj, elatriye) epi fè yo disponib nan navigatè kliyan an . Sèvè entènèt la pa ka senpleman pran dosye yo ak manipile yo ke yo te pèsonn, se sa ki, li bezwen yon itilizatè ki pral youn nan moun ki pral fè tout bagay sa a nan fen a, e ke itilizatè a se yon sèl la mwen ap pale de, ou konprann?

Ki sa ki nan separe nan plizyè itilizatè?

Sipoze ke sou sèvè nou an nou gen 2 sit entènèt, nou ki se yon pwojè pèsonèl, ak yon lòt (ann imajine se menaj nou oswa frè nou). Menm lè nou itilize baz done separe ak itilizatè diferan jwenn aksè nan yo, nan fen a dosye yo nan tou de sit entènèt yo manipile pa itilizatè a menm, se pwosesis la PHP jere pa itilizatè a menm pou tout sit (anjeneral www-done). Sa a se yon pratik ki pa rekòmande, li se pi bon yo gen tout bagay byen separe, menm jan yon pawòl fin vye granmoun ale, li se pi bon yo dwe san danje pase regrèt.

Ok mwen konprann, ki jan mwen fè l 'ak Nginx

2000px-Nginx_logo.svg

Premye bagay yo sonje se ke Nginx pa gen modil pwòp li yo ki okipe pwosesis PHP tankou Apache fè, pou Nginx nou bezwen sèvi ak PHP-CGI oswa PHP-FPM, ki travay menm jan byen (oswa pi bon) pase Apache. Se konsa, separe pwosesis PHP atravè itilizatè diferan, nou pral bezwen chanje liy nan dosye konfigirasyon PHP (CGI oswa FPM), pa Nginx tèt li.

Sipoze ou itilize PHP-FPM, nou pral kreye yon dosye konfigirasyon nan pisin Pou yon sit espesifik, se sa ki, yon pisin se yon fason a separe pwosesis PHP soti nan PHP-FPM, men nou ale nan pati.

1. Premyèman nou dwe konnen ki itilizatè sistèm lan nou pral itilize, mwen pral asime ke nou toujou pa gen okenn kreye ak byen, kite a kreye li:

Tout kòmandman sa yo DWE egzekite ak privilèj administratif, swa avèk rasin dirèk oswa lè l sèvi avèk sudo

adduser blog

Nou pral kòmanse pwosesis nòmal pou kreye yon itilizatè, antre modpas la, elatriye.

Mwen blog itilizatè a jis yo swiv egzanp lan, ki premye sit la nou pral òganize yo pral yon blog, byen ke ... yo konnen chak itilizatè ak ki sit ki gen rapò ak

1. Premye kite a ale nan /etc/php5/fpm/pool.d/:

cd /etc/php5/fpm/pool.d/

2. Koulye a, nou pral kreye yon dosye ki rele blog.conf:

touch blog.conf

3. Koulye a, nou pral mete konfigirasyon an nan pisin lan ke nou pral itilize pou blog la VHost:

Edite dosye blog.conf la ak nano ... pa egzanp: sudo nano blog.conf
[blog] itilizatè = blog
gwoup = blog
koute = / var / kouri / php5-fpm-blog.sock listen.owner = blog
koute.group = blog
pm = ondemand pm.max_children = 96 chdir = /

Remak: Ki sa mwen make yo an wouj se sa yo dwe modifye depann sou itilizatè a yo te deja kreye. Pou egzanp, si yo kreye yon lòt VHost ak yon lòt itilizatè (fowòm pou egzanp) Lè sa a, olye pou yo blog tou senpleman mete fowòm nan chak nan liy yo, se pa sa konprann?

4. Yon fwa konfigirasyon an nan pisin nan nouvo (dosye a blog.conf ke nou jis kreye ak modifye), Li se vire a di Nginx VHost a yo sèvi ak yon chosèt diferan pou sa VHost, pou sit sa a. Chosèt la ke yo pral itilize yo pral youn nan nou deja deklare (/var/run/php5-fpm-blog.sock). Ann edite Nginx VHost ak nan pati pwosesis PHP la, nou endike pou nou itilize chosèt sa yo. Pa egzanp:

kote ~ \ .php $ {si (! -f $ request_filename) {retounen 404; }
fastcgi_pass unix: / var / run / php5-fpm-blog.chosèt;
gen ladan fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_read_timeout 300; }

Kòm ou ka wè, mwen endike ke pwosesis la PHP nan ki VHost (liy sa yo se pou egzanp andedan / elatriye / nginx / sit-pèmèt / vhost-blog) fè li ak chosèt yo te jwenn nan /var/run/php5-fpm-blog.sock ... ki se youn nan nou te kreye deja lè koreksyon /etc/php5/fpm/pool.d/blog.conf ... se li konprann pa ?

5. Yon fwa sa a fè, nou rekòmanse tou de sèvis (php5-fpm ak nginx) ak vwala, nou pral wè ke pwosesis la nan sit sa a (vhost) PA fèt pa www-done oswa rasin oswa nenpòt moun ki sanble, men pa itilizatè a ke nou deja defini .

Isit la mwen montre w pwodiksyon an nan yon ps aux | grep fpm sou youn nan serveurs ne mwen an:

ps aux | grep fpm ebook 586 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: pisin ebook ebook 589 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: pisin ebook www 608 0.0 0.2 350084 5008? S Mar30 0:00 php-fpm: pisin www www 609 0.0 0.2 350600 5048 30? S Mar0 00:3 php-fpm: pisin www tv611 0.0 0.0 349360 1204 30? S Mar0 00:3 php-fpm: pisin tv3 tv615 0.0 0.0 349360 1204 30? S Mar0 00:3 php-fpm: pisin tv1818 magazin 1.7 1.7 437576 36396 09? S 55:0 46:2264 php-fpm: magazin magazin pisin 1.9 1.7 437332 35884 10? S 15:0 26:2338 php-fpm: pisin magazin elèv 4.3 1.0 428992 22196 10? S 18:0 53:2413 php-fpm: magazin elèv pisin 1.8 1.7 437764 36152 10? S 22:0 18:2754 php-fpm: magazin gutl pisin 3.5 1.3 356724 27164 10? S 38:0 00:5624 php-fpm: pisin zantray cgr 0.0 1.0 365168 22696 28? S Apr0 16:7900 php-fpm: pisin cgr elèv 0.3 2.5 457052 52444 25? S Apr20 23:11021 php-fpm: elèv pisin elèv 0.4 2.5 458316 52864 28? S Apr5 57:11254 php-fpm: pisin elèv cgr 0.0 1.0 363152 21708 28? S Apr0 12:13184 php-fpm: pisin cgr cgr 0.0 1.0 362872 21360 28? S Apr0 08:XNUMX php-fpm: pisin cgr

Kòm ou ka wè ... separe pwosesis la PHP pa itilizatè lè l sèvi avèk Nginx + PHP-FPM se reyèlman fasil, gen ou wè ke gen plizyè pisin, kòm gen plizyè itilizatè.

Konklizyon

Lè li rive serveurs, ou pa janm paranoya ase ... sekirite se pa yon bagay yo jwe avèk yo, plis la nou toujou eseye amelyore sekirite a nan serveurs nou yo ak sèvis yo, gen mwens chans a nou pral pè pa yon tantativ (siksè) Hack oswa anyen menm jan an 😉


Kontni an nan atik la respekte prensip nou yo nan etik editoryal. Pou rapòte yon erè klike sou isit la.

9 kòmantè, kite ou

Kite kòmantè ou

Adrès imèl ou pa pral dwe pibliye. Jaden obligatwa yo make ak *

*

*

  1. Responsab pou done yo: Miguel Ángel Gatón
  2. Objektif done yo: Kontwòl SPAM, jesyon kòmantè.
  3. Lejitimasyon: konsantman ou
  4. Kominikasyon nan done yo: done yo pa pral kominike bay twazyèm pati eksepte pa obligasyon legal.
  5. Done depo: baz done anime pa rezo Occentus (Inyon Ewopeyen)
  6. Dwa: Nenpòt ki lè ou ka limite, refè ak efase enfòmasyon ou yo.

  1.   dhunter diro

    Gaara, nan tan aktyèl bagay sa yo ta dwe otomatikman otank posib, mwen rekòmande ou eseye Ansible. San yo pa ajan, ou sèlman bezwen piton sou lame a aleka, trè senp nan konfigirasyon, yaml dosye, Jinja modèl.

    https://github.com/ansible/ansible-examples/tree/master/wordpress-nginx

    1.    KZKG ^ Gaara diro

      Ann wè, sa pa toujou sèlman pou sit WordPress yo, epi ... haha ​​petèt Ansible klike sou volao, men mwen prefere konnen egzakteman kijan tout bagay mache sou sèvè a, menm si mwen oblije pase 1 minit pou kreye yon nouvo chosèt ak yon nouvo VHost 😀

      1.    dhunter diro

        Avèk Ansible ou otomatize tout bagay, ou fè pratikman tou sa ou vle, avantaj nan metòd sa a se ke ou enkapsule pratik la ak Lè sa a, egzekite nan volonte, imajine ke ou gen yon sit lou chaje epi ou vle fè balanse chaj ant serveurs aplikasyon an, sa yo gen yo dwe configuré egzakteman menm bagay la ou pa ka sote yon etap oswa fè anyen diferan nan youn nan yo, ou ka imajine fè pwosedi a etap pa etap 4 fwa? Avèk Ansible li nan senp tankou ajoute hostname nan dosye a envantè ak Voilá !!

        http://www.ansible.com/how-ansible-works

      2.    dhunter diro

        Padon sou kil Ansible a, men li se youn nan teknoloji sa yo ke ou dekouvri epi ou vle tout moun sèvi ak li kounye a paske li tèlman fre ak pratik, se tankou lè ou dekouvri NGINX epi ou vle tout zanmi ou yo kite Apache imedyatman.

        https://speakerdeck.com/slok/ansible-all-the-things

  2.   Mstaaravin diro
  3.   Pouri87 diro

    Se mwen menm (oswa etid yo dwe) yon pwomotè ak NGIX mwen te gen anpil pwoblèm lè konfigirasyon nginx + php-fpm. Mwen konnen ke distro a archlinux se pa pi bon an fè li kòm yon sèvè, men chak fwa mwen mete ajou yon vèsyon nan ngix oswa tout bagay php toujou te fè aksidan Se konsa, mwen bay moute tantativ la lol ... Pou jodi a mwen rete ak Apache nan klasik + PHP men Mwen pral wè si mwen ale nan NGIX ankò ... petèt nan yon machin vityèl

    1.    dhunter diro

      Mantalite a chanje yon ti jan, nginx sèvi kontni an estatik ak sèvi kòm yon prokurasyon ranvèse pou php-fpm a ki se ki moun ki kouri PHP reyèl la, ou gen kòmanse nan pati ak reyalize deplwaye a etap pa etap, gade pou yon gid deplwaye nan fondasyon ou travay avèk yo, chak moun gen detay li yo pa non yo nan piblik la, estatik, resous, elatriye ...

  4.   Anonim diro

    Èske kominote a gwo favè abandone mo "hostear" la, ki pa egziste. Bondye, èske li tèlman difisil pou di "lame"?

  5.   Wil diro

    Bonjou, swiv egzanp ou mwen ta renmen konnen si yon pisin ta ka fèt sèlman pou wordpress backen la, se sa ki, pou wp-admin a fè yon nouvo priz pou koneksyon fèk ap rantre nan backend la

    kote / wp-admin {
    rasin /var/www/yoursite.com/wp-admin;
    endèks index index.html index.htm;
    kote ~ ^ / wp-admin /(.+. php) $ {
    try_files $ uri = 404;
    rasin /var/www/yoursite.com/wp-admin;
    gen ladan / elatriye / nginx / fastcgi_params;

    fastcgi_pass server unix:/run/php5-fpm2.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_read_timeout 1240;
    }
    location ~* ^/wp-admin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
    root /var/www/tusitio.com/wp-admin/;
    }
    }