Nginx တွင်မတူညီသောအသုံးပြုသူများနှင့် VHosts မြောက်မြားစွာရှိသည်

သင်၌ဆာဗာတစ်ခုရှိပါကကမ္ဘာပေါ်တွင်သာမန်အရာတစ်ခုမှာလုံခြုံရေးနှင့်ပိုမိုလုံခြုံမှုရှိရန်စဉ်းစားရန်ဖြစ်သည်။

အနည်းငယ်လေ့သုံးလေ့ရှိပြီး NOTHING က database တစ်ခုလုံးအတွက်အသုံးပြုသူအားအသုံးပြုရန်ဖြစ်သည်။ အကယ်၍ root ကိုအသုံးပြုပါကပိုမိုဆိုးရွားနိုင်သည်။အဝိဇ္ဇာသို့မဟုတ်အဝိဇ္ဇာကြောင့်ဖြစ်သည်) ဒါကိုလုပ်ပါ၊ ဘာလို့ဒီလိုမလုပ်သင့်တာလဲဆိုတာကိုငါပြောပြီးပြီ အခြားပို့စ်ယခုအခါ ၀ က်ဘ်ဆာဗာ၏အပြောင်းအလဲကိုကွဲပြားခြားနားသောသုံးစွဲသူများနှင့်မည်သို့ကွဲပြားသည်ကိုရှင်းပြရန်အချိန်ရောက်လာပြီ Nginx.

DedicatedServer_SubImage

အသုံးပြုသူများနှင့်ဝဘ်ဆာဗာကဘာလဲ။

၎င်းကိုအတိုချုပ်နှင့်ရိုးရှင်းသောနည်းဖြင့်ရှင်းပြရန်၊ web server (apache, nginx, သမျှ) သည်စနစ်အတွင်းရှိလုပ်ငန်းစဉ်များ၊ HDD မှဖိုင်များ (ပုံများစသဖြင့်) ကိုယူပြီး၎င်းတို့ကိုပြုလုပ်ရန်ဖြစ်စဉ်များကိုဖွင့်ရန်လိုအပ်သည် client ကိုရဲ့ browser ကိုမှရရှိနိုင်ပါသည်။ ၀ က်ဘ်ဆာဗာသည်ဖိုင်များကိုယူပြီးသူတို့ကိုဘယ်သူမှမကိုင်တွယ်နိုင်ပါ။ ဆိုလိုသည်မှာအဆုံး၌ဤအရာများကိုလုပ်ဆောင်မည့်အသုံးပြုသူတစ် ဦး လိုအပ်ပါသည်။ ထိုသုံးစွဲသူသည်ကျွန်ုပ်ပြောနေသည့်အကြောင်းအရာကိုသင်နားလည်ပါသလား။

အသုံးပြုသူများစွာတွင်ခွဲထုတ်ခြင်းဆိုတာဘာလဲ။

ကျွန်ုပ်တို့၏ဆာဗာတွင်ဝက် (ဘ်) ဆိုဒ် (၂) ခုရှိသည်၊ ၎င်းမှာကိုယ်ပိုင်စီမံကိန်းဖြစ်သောငါတို့နှင့်အခြားတစ်ခုရှိသည်။ငါတို့ရဲ့ရည်းစားဒါမှမဟုတ်အစ်ကိုရဲ့စိတ်ကူးကြည့်ကြစို့) ။ ကျွန်ုပ်တို့သည်သီးခြားဒေတာဘေ့စ်များနှင့်အသုံးပြုသူများကို၎င်းတို့ကိုဝင်ရောက်ကြည့်ရှုစေသည့်တိုင်နောက်ဆုံးတွင်ဝက်ဘ်ဆိုက်နှစ်ခုလုံး၏ဖိုင်များကိုအသုံးပြုသူတစ် ဦး တည်းမှထိန်းချုပ်သည်။ PHP processing သည်ဆိုဒ်များအားလုံးအတွက်အသုံးပြုသူတ ဦး တည်းမှစီမံသည် (များသောအားဖြင့် www-data ကို) ။ ၎င်းသည်အကြံပြုထားခြင်းမဟုတ်သောအလေ့အကျင့်တစ်ခုဖြစ်သည်။ အရာရာတိုင်းကိုကောင်းစွာခွဲထားခြင်းက ပို၍ ကောင်းသည်၊ ဟောင်းနွမ်းသောစကားတစ်ခွန်းဆိုသည့်အတိုင်းစိတ်မကောင်းခြင်းထက်လုံခြုံမှုသည် ပို၍ ကောင်းသည်။

ကောင်းပြီ၊ နားလည်တယ်၊ Nginx ကိုဘယ်လိုလုပ်နိုင်လဲ

2000px-Nginx_logo.svg

သတိပြုရမည့်အချက်မှာ Nginx သည် Apache ကဲ့သို့ PHP အပြောင်းအလဲများကိုကိုင်တွယ်နိုင်သောကိုယ်ပိုင် module မရှိသောကြောင့်ဖြစ်သည်။ Nginx သည် PHP ထက် Cache (PHP-FPM) ကိုသုံးရန်လိုသည်။ ၎င်းသည် Apache ထက် (သို့မဟုတ်ပိုကောင်းသည်) Apache ဖြစ်သည်။ ကွဲပြားခြားနားသောသုံးစွဲသူများနှင့် PHP အပြောင်းအလဲကိုခွဲထုတ်ရန်ကျွန်ုပ်တို့သည် Nginx ကိုယ်တိုင်မဟုတ်ဘဲ PHP configuration files (CGI or FPM) တွင်လိုင်းပြောင်းရန်လိုအပ်သည်။

သင်အသုံးပြုသည်ဆိုပါစို့ PHP-FPM, ငါတို့၏တစ် ဦး configuration file ကိုဖန်တီးပါလိမ့်မယ် ရေကူးကန် တိကျသော site တစ်ခုအတွက် pool သည် PHP processing မှ PHP-FPM နှင့်ခွဲခြားရန်နည်းလမ်းဖြစ်သည်။ သို့သော်ကျွန်ုပ်တို့သည်အစိတ်အပိုင်းများဖြင့်သွားသည်။

၁။ ပထမ ဦး စွာကျွန်ုပ်တို့သည်မည်သည့်စနစ်ကိုအသုံးပြုမည်ကိုကျွန်ုပ်တို့သိရမည်။ ကျွန်ုပ်တို့၌မည်သည့်တီထွင်ဖန်တီးမှုမှမရှိသေးဟုယူဆရမည်။

အောက်ပါ Command များအားလုံးကို root root နှင့်ဖြစ်စေ sudo ကို သုံး၍ ဖြစ်စေ administrative privilege နဲ့လုပ်ရမယ်

adduser blog

ကျွန်ုပ်တို့သည်သုံးစွဲသူတစ် ဦး ဖန်တီးရန်၊ လျှို့ဝှက်နံပါတ်စသည်တို့စသည်တို့ကိုပုံမှန်လုပ်ငန်းစဉ်စတင်ပါမည်။

ငါဥပမာကိုလိုက်လျှောက်ရန်အသုံးပြုသူကိုဘလော့ဂ်ပြုလုပ်သည်၊ ကျွန်ုပ်တို့ပထမဆုံးကျင်းပမည့်ပထမဆုံး site သည်ဘလော့တစ်ခုဖြစ်လိမ့်မည်၊ ထိုဝက်ဘ်ဆိုက်နှင့်ဆက်စပ်သောအသုံးပြုသူတစ် ဦး စီကိုသိရန်ဖြစ်သည်။

1. ပထမ ဦး စွာ /etc/php5/fpm/pool.d/ သို့သွားပါ။

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

2. ယခုကျွန်ုပ်တို့ blog.conf ဖိုင်ကိုဖန်တီးပါလိမ့်မည်။

touch blog.conf

3. ယခုကျွန်ုပ်တို့သည် VHost ဘလော့ဂ်အတွက်အသုံးပြုမည့်ရေကူးကန်၏ဖွဲ့စည်းမှုကိုထားမည်။

nano ... ဖြင့် blog.conf ဖိုင်ကိုတည်းဖြတ်ပါ။ sudo nano blog.conf ဖြစ်သည်
[ဘလော့ဂ်] အသုံးပြုသူ = ဘလော့ဂ်
အုပ်စု = ဘလော့ဂ်
listen = / var / run / php5-fpm-ဘလော့ဂ်.sock listen.owner = ဘလော့ဂ်
group.group = နားထောင်သည် ဘလော့ဂ်
pm = ondemand pm.max_children = 96 chdir = /

မှတ်စု: သူတို့ကိုငါအနီရောင်ဖြင့်မှတ်သားသည်မှာသူတို့အရင်ဖန်တီးခဲ့သည့်သုံးစွဲသူများပေါ် မူတည်၍ ပြုပြင်ရမည်။ ဥပမာအားဖြင့်၊ သူတို့သည်အခြားအသုံးပြုသူတစ် ဦး နှင့်အခြား VHost တစ်ခုဖန်တီးလျှင် (ဥပမာအားဖြင့်ဖိုရမ်) ထို့နောက်ဘလော့ဂ်အစားလိုင်းများတစ်ခုစီတွင်ဖိုရမ်တစ်ခုသာထားပါကနားလည်ပါသလား။

4. အသစ်ကရေကူးကန်၏ configuration ပြီးတာနဲ့ (ငါတို့ဖန်တီးပြီးတည်းဖြတ်ခဲ့တဲ့ blog.conf ဖိုင်), ဒီ site အတွက် VHost အတွက်အခြား sock တစ်ခုသုံးဖို့ Nginx VHost ကိုပြောရန်အလှည့်ဖြစ်သည်။ အသုံးပြုမည့် sock သည်ကျွန်ုပ်တို့ယခင်ကကြေငြာခဲ့လိမ့်မည် (/var/run/php5-fpm-blog.sock) Nginx VHost ကိုပြင်ကြစို့။ PHP processing အပိုင်းတွင်ထို socks များကိုအသုံးပြုရန်ညွှန်ပြသည်။ ဥပမာ:

တည်နေရာ ~ \ .php $ {လျှင် (-f $ request_filename!) {404 ပြန်လာ; }
fastcgi_pass unix: / var / ပြေး / php5-fpm-ဘလော့ဂ်။ စို့;
fastcgi_params ပါဝင်သည်; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_read_timeout 300; }

သင်မြင်နိုင်သည်အတိုင်း, ငါ VHost ၏ PHP ကိုအပြောင်းအလဲနဲ့ (ငါဖော်ပြသည်)ထိုလိုင်းများသည်ဥပမာ / etc / nginx / sites-enabled / vhost-blog အတွင်းတွင်ဖြစ်သည်) /etc/php5/fpm/pool.d/blog.conf ကိုတည်းဖြတ်ရာတွင်ယခင်ဖန်တီးခဲ့သည့် /var/run/php5-fpm-blog.sock ... တွင်တွေ့ရှိရသောခြေအိတ်နှင့်လုပ်ပါ။ ?

5. ဤအရာပြီးသည်နှင့် ၀ န်ဆောင်မှုများ (php5-fpm နှင့် nginx) နှင့် voila နှစ်ခုစလုံးကိုပြန်လည်စတင်သည်။ ထို site (vhost) ကို www-data သို့မဟုတ် root သို့မဟုတ်အလားတူမည်သူမှမလုပ်ဆောင်သည်ကိုကျွန်ုပ်တို့မြင်လိမ့်မည်။ ယခင်ကသတ်မှတ်။

ဒီမှာကျွန်တော်ခင်ဗျားရဲ့ output ကိုပြမယ် ps aux | grep fpm ကျွန်ုပ်၏ node ဆာဗာတစ်ခုပေါ်တွင်:

ps aux | grep fpm ebook 586 0.0 0.0 349360 1204? S က Mar30 0:00 php-fpm: ရေကန် ebook ebook 589 0.0 0.0 349360 1204? S က Mar30 0:00 php-fpm: ရေကန် ebook www 608 0.0 0.2 350084 5008? S က Mar30 0:00 php-fpm: ရေကန် www www 609 0.0 0.2 350600 5048 30? S ကို Mar0 00:3 php-fpm: ရေကန် www tv611 0.0 0.0 349360 1204 30? S ကို Mar0 00:3 php-fpm: ရေကူးကန် tv3 tv615 0.0 0.0 349360 1204 30? S က Mar0 00:3 php-fpm: ရေကူးကန် tv1818 မဂ္ဂဇင်း 1.7 1.7 437576 36396 09? S ကို 55:0 46:2264 php-fpm: ရေကန်မဂ္ဂဇင်းမဂ္ဂဇင်း 1.9 1.7 437332 35884 10? S ကို 15:0 26:2338 php-fpm: ရေကန်မဂ္ဂဇင်းကျောင်းသား 4.3 1.0 428992 22196 10? S က 18:0 53:2413 php-fpm: ရေကန်ကျောင်းသားမဂ္ဂဇင်း 1.8 1.7 437764 36152 10? S က 22:0 18:2754 php-fpm: ရေကန် gutl မဂ္ဂဇင်း 3.5 1.3 356724 27164 10? S က 38:0 00:5624 php-fpm: ရေကန် gutl cgr 0.0 1.0 365168 22696 28? S က Apr0 16:7900 php-fpm: ရေကူးကန် cgr ကျောင်းသား 0.3 2.5 457052 52444 25? S က Apr20 23:11021 php-fpm: ရေကန်ကျောင်းသား 0.4 2.5 458316 52864 28? S က Apr5 57:11254 php-fpm: 0.0 ရေကန်ကျောင်းသား cgr 1.0 363152 21708 28 0? S က Apr12 13184:0.0 php-fpm: ရေကန် cgr cgr 1.0 362872 21360 28 0? S က Apr08 XNUMX:XNUMX php-fpm: ရေကူးကန် cgr

တွေ့နိုင်သည်မှာ ... PHP processing ကို Nginx + PHP-FPM ကိုအသုံးပြုသူများအားခွဲခြားရန်အလွန်လွယ်ကူသည်။ အသုံးပြုသူအများအပြားရှိနေသောကြောင့်ရေကန်အများအပြားရှိသည်ကိုသင်တွေ့ရသည်။

ကောက်ချက်

ဆာဗာများနှင့်ပတ်သက်လာလျှင်သင်လုံးဝလုံလောက်မည်မဟုတ်ပါ။ လုံခြုံရေးသည်ကစားရန်အရာမဟုတ်ပါ၊ ကျွန်ုပ်တို့၏ဆာဗာများနှင့်သူတို့၏ ၀ န်ဆောင်မှုများ၏လုံခြုံရေးကိုပိုမိုတိုးတက်အောင်အမြဲတမ်းကြိုးစားလေလေ၊ ကြိုးစားမှုသို့မဟုတ်အလားတူဘာမှ anything hack


ဆောင်းပါး၏ပါ ၀ င်မှုသည်ကျွန်ုပ်တို့၏အခြေခံမူများကိုလိုက်နာသည် အယ်ဒီတာအဖွဲ့ကျင့်ဝတ်။ အမှားတစ်ခုကိုသတင်းပို့ရန်ကလစ်နှိပ်ပါ ဒီမှာ.

9 မှတ်ချက်များ, သင့်စွန့်ခွာ

သင်၏ထင်မြင်ချက်ကိုချန်ထားပါ

သင့်အီးမေးလ်လိပ်စာပုံနှိပ်ထုတ်ဝေမည်မဟုတ်ပါ။ တောင်းဆိုနေတဲ့လယ်ယာနှင့်အတူမှတ်သားထားတဲ့ *

*

*

  1. အချက်အလက်အတွက်တာဝန်ရှိသည် - Miguel ÁngelGatón
  2. အချက်အလက်များ၏ရည်ရွယ်ချက်: ထိန်းချုပ်ခြင်း SPAM, မှတ်ချက်စီမံခန့်ခွဲမှု။
  3. တရားဝင်: သင်၏ခွင့်ပြုချက်
  4. အချက်အလက်များ၏ဆက်သွယ်မှု - ဒေတာများကိုဥပဒေအရတာ ၀ န်ယူမှုမှ လွဲ၍ တတိယပါတီများသို့ဆက်သွယ်မည်မဟုတ်ပါ။
  5. ဒေတာသိမ်းဆည်းခြင်း: Occentus ကွန်ယက်များ (အီးယူ) မှလက်ခံသည့်ဒေတာဘေ့စ
  6. အခွင့်အရေး - မည်သည့်အချိန်တွင်မဆိုသင်၏အချက်အလက်များကိုကန့်သတ်၊

  1.   တော ဟုသူကပြောသည်

    Gaara, ဒီအခြိနျတှငျဒီအရာမြားကိုအတတ်နိုင်ဆုံးအလိုအလြောကျသှားသငျ့တယျ။ အေးဂျင့်မရှိပဲ၊ Python ကိုသာဝေးဝေး host တွင်သာလိုအပ်သည်။ ပြင်ဆင်ရန်အလွန်ရိုးရှင်းသည်၊ yaml ဖိုင်များ၊ Jinja တင်းပလိတ်များ။

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

    1.    KZKG ^ Gaara ဟုသူကပြောသည်

      ကြည့်ကြရအောင်၊ WordPress ဆိုဒ်များအတွက်သာမဟုတ်ပါ၊ haha ​​meureun Ansible က volao ကိုနှိပ်ပါ၊ သို့သော်ကျွန်ုပ်သည် ၁ မိနစ်ခန့် socks အသစ်တစ်ခုဖန်တီးရန်နှင့် server ပေါ်တွင်မည်သို့အလုပ်လုပ်သည်ကိုအတိအကျသိရန်ကြိုက်သည် အသစ် VHost 😀

      1.    တော ဟုသူကပြောသည်

        Ansible ဖြင့်သင်သည်အရာအားလုံးကိုအလိုအလျောက်ပြုလုပ်သည်၊ သင်လိုချင်သမျှကိုလက်တွေ့လုပ်သည်။ ဤနည်းလမ်း၏အားသာချက်မှာသင်အလေ့အကျင့်ကိုခြုံငုံမိစေပြီးအလိုတော်အတိုင်းလုပ်ဆောင်ခြင်း၊ သင့်တွင်လေးလံသောတင်ထားသော site တစ်ခုရှိပြီး application server များအကြားမျှတမှုကိုသင်ပြုလုပ်လိုသည်ဟူသောအချက်ဖြစ်သည်။ သင်အဆင့်တစ်ခုကိုကျော်သွားခြင်းသို့မဟုတ်၎င်းတို့ထဲမှတစ်ခုနှင့်တစ်ခုကွဲပြားခြားနားသောအရာများကိုမပြုလုပ်နိုင်ခြင်းနှင့်အတူတူပင်ပြုပြင်ရန်လိုသည်၊ အဆင့် ၄ ကြိမ်တိုင်တိုင်လုပ်ထုံးလုပ်နည်းကိုသင်လုပ်ဆောင်နေကြောင်းစိတ်ကူးကြည့်နိုင်ပါသလား။ Ansible ဖြင့်၎င်းဖိုင်အားစာရင်းဖိုင်နှင့်Voiláသို့ထည့်ခြင်းကဲ့သို့ရိုးရှင်းပါသည်။

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

      2.    တော ဟုသူကပြောသည်

        Ansible အစွမ်းကြောင့်ဝမ်းနည်းပါသည်၊ သို့သော်၎င်းနည်းပညာများအနက်မှတစ်ခုမှာသင်ရှာဖွေတွေ့ရှိခဲ့ပြီးလူတိုင်းကို၎င်းကိုအသုံးပြုရန်အလွန်လိုလားတောင့်တသောကြောင့်၎င်းသည် NGINX ကိုသင်ရှာဖွေတွေ့ရှိသောအခါနှင့်သင်၏မိတ်ဆွေများအားလုံး Apache ကိုချက်ချင်းထွက်ခွာသွားရန်လိုသည်။

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

  2.   မြဝတီ ဟုသူကပြောသည်

    ငါပို့စ်ကဒီဖြည့်စွက်သေချာပါတယ် ...
    http://blog.ngen.com.ar/configuracion-segura-de-un-webserver-con-nginx-php-fpm/

  3.   Rots87 ဟုသူကပြောသည်

    nginx + php-fpm ကိုပြုပြင်သောအခါကျွန်ုပ်သည် developer တစ်ယောက်ဖြစ်ပြီး NGIX တွင်ပြသနာများစွာရှိခဲ့သည်။ archlinux distro သည်ဆာဗာတစ်ခုအနေနှင့်လုပ်ရန်အကောင်းဆုံးမဟုတ်ကြောင်း၊ သို့သော် ngix သို့မဟုတ် php အရာအားလုံးကိုအမြဲတမ်းပျက်ပြားအောင် update လုပ်တိုင်းအချိန်တိုင်း lol ကြိုးပမ်းမှုကိုစွန့်လွှတ်ခဲ့သည်။ ကျွန်ုပ်သည်ယနေ့ခေတ် Apache + PHP နှင့်သာအတူတူနေခဲ့သော်လည်း၊ နောက်တဖန် NGIX ကိုပြန်လှည့်လည်ကြည့်ရှုပါ့မယ် ... ဖြစ်နိုင်ချေကတော့ virtual machine မှာပေါ့

    1.    တော ဟုသူကပြောသည်

      စိတ်ဓာတ်သည်အနည်းငယ်ပြောင်းလဲသွားသည်။ nginx သည် static content များကိုလုပ်ဆောင်ပြီး PHP စစ်မှန်သော PHP ကို ​​run နေသော php-fpm အတွက် reverse proxy တစ်ခုအဖြစ်ဆောင်ရွက်သည်။ သင်အပိုင်းများစပြီးဖြန့်ကျက်ပြီးအဆင့်တစ်ဆင့်အောင်မြင်ရန်လိုအပ်သည်။ သင်အလုပ်လုပ်သောမူဘောင်တစ်ခုချင်းစီတွင်အများဆိုင်၊ အများ၊ အရင်းအမြစ်များစသည်ဖြင့်အမည်များဖြင့်အသေးစိတ်ရှိသည်။

  4.   အမည်မထုတ်ဖေါ်သော ဟုသူကပြောသည်

    တည်ရှိခြင်းမရှိသော "hostear" ဟူသောစကားလုံးကိုစွန့်ပစ်ခြင်းကိုလူထုအားကြီးမားသောမျက်နှာသာပေးပါ။ ဘုရားသခင်က "host" ဟုပြောရန်အလွန်ခက်ခဲပါသလား။

  5.   မည်မဟုတ်ပါ ဟုသူကပြောသည်

    မင်္ဂလာပါ။ သင်၏ဥပမာကိုလိုက်လျှောက်ခြင်းအား wordpress backen အတွက်သာလျှင် pool တစ်ခုကို ၀ င်နိုင်ခြင်းရှိမရှိသိချင်ပါတယ်။ ဆိုလိုသည်မှာ wp-admin အတွက် backend သို့အဝင်ချိတ်ဆက်မှုများအတွက် socket အသစ်တစ်ခုပြုလုပ်ခြင်းဖြင့်

    တည်နေရာ / wp-admin {
    root /var/www/yoursite.com/wp-admin;
    index.php index.html index.htm;
    တည်နေရာ ~ ^ / wp-admin /(.+ ။ php) $ {
    try_files $ uri = 404;
    root /var/www/yoursite.com/wp-admin;
    ပါဝင်သည် / etc / 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/;
    }
    }