Nginx లో వేర్వేరు వినియోగదారులతో బహుళ VHosts ని హోస్ట్ చేయండి

మీకు సర్వర్ ఉన్నప్పుడు ప్రపంచంలో అత్యంత సాధారణ విషయం ఏమిటంటే, భద్రత మరియు మరింత భద్రత గురించి ఆలోచించడం, మీరు ఎప్పటికీ మతిస్థిమితం పొందలేరు

కొంతవరకు సాధారణ అభ్యాసం మరియు ఏదీ సిఫారసు చేయబడలేదు, అన్ని డేటాబేస్ల కోసం ఒకే వినియోగదారుని ఉపయోగించడం, రూట్ ఉపయోగించినట్లయితే అధ్వాన్నంగా ఉంటుంది, ఇది నమ్మశక్యం కానిదిగా అనిపించవచ్చు, వారు (అస్థిరత లేదా అజ్ఞానం కారణంగా) దీన్ని చేయండి, మీరు ఎందుకు ఇలా వ్యవహరించకూడదని నేను ఇప్పటికే మాట్లాడాను మరొక పోస్ట్వేర్వేరు వినియోగదారులలో వెబ్ సర్వర్ ప్రాసెసింగ్‌ను ఎలా మరియు ఎందుకు వేరు చేయడం మంచిదో ఇప్పుడు వివరించాల్సిన సమయం వచ్చింది, ఈసారి అది ఉపయోగించబడుతుంది వికీపీడియా.

అంకితమైన సర్వర్_సబ్ ఇమేజ్

వినియోగదారులు మరియు వెబ్ సర్వర్ అంటే ఏమిటి?

దీన్ని క్లుప్తంగా మరియు సరళంగా వివరించడానికి, వెబ్ సర్వర్ (అపాచీ, ఎన్జిఎన్ఎక్స్, ఏమైనా) వ్యవస్థలో ప్రక్రియలను తెరవడం అవసరం, హెచ్‌డిడి (చిత్రాలు మొదలైనవి) నుండి ఫైల్‌లను తీసుకొని వాటిని తయారుచేసే ప్రక్రియలు క్లయింట్ యొక్క బ్రౌజర్‌కు అందుబాటులో ఉంది. వెబ్ సర్వర్ కేవలం ఫైళ్ళను తీసుకొని వాటిని ఎవ్వరూ మార్చలేవు, అనగా, చివరికి ఇవన్నీ చేసే యూజర్ కావాలి, మరియు నేను మాట్లాడుతున్నది ఆ యూజర్, అది అర్థమైందా?

అనేక మంది వినియోగదారులలో వేరు చేయడం ఏమిటి?

మా సర్వర్‌లో మనకు 2 వెబ్‌సైట్లు ఉన్నాయని అనుకుందాం, ఇది మాది వ్యక్తిగత ప్రాజెక్ట్ మరియు మరొకటి (ఇది మా స్నేహితురాలు లేదా సోదరుడిది అని imagine హించుకుందాం). మేము వాటిని యాక్సెస్ చేయడానికి ప్రత్యేక డేటాబేస్లను మరియు వేర్వేరు వినియోగదారులను ఉపయోగించినప్పుడు కూడా, చివరికి రెండు వెబ్‌సైట్ల యొక్క ఫైల్‌లు ఒకే యూజర్ చేత మార్చబడతాయి, PHP ప్రాసెసింగ్ అన్ని సైట్‌లకు ఒకే యూజర్ చేత నిర్వహించబడుతుంది (ఇది సాధారణంగా www- డేటా). ఇది సిఫారసు చేయని అభ్యాసం, ప్రతిదీ బాగా వేరుచేయడం మంచిది, పాత సామెత చెప్పినట్లుగా, క్షమించండి కంటే సురక్షితంగా ఉండటం మంచిది.

సరే నేను అర్థం చేసుకున్నాను, నేను Nginx తో ఎలా చేయగలను

2000px-Nginx_logo.svg

గమనించదగ్గ మొదటి విషయం ఏమిటంటే, అపాచీ వలె PHP ప్రాసెసింగ్‌ను నిర్వహించే Nginx కి దాని స్వంత మాడ్యూల్ లేదు, Nginx కోసం మేము PHP-CGI లేదా PHP-FPM ను ఉపయోగించాలి, ఇది అపాచీ కంటే బాగా (లేదా మంచిది) పనిచేస్తుంది. కాబట్టి, వేర్వేరు వినియోగదారులలో PHP ప్రాసెసింగ్‌ను వేరు చేయడానికి, మేము Nginx లోనే కాకుండా PHP కాన్ఫిగరేషన్ ఫైళ్ళలో (CGI లేదా FPM) పంక్తులను మార్చాలి.

మీరు ఉపయోగిస్తారని అనుకుందాం PHP-FPM, మేము యొక్క కాన్ఫిగరేషన్ ఫైల్ను సృష్టిస్తాము పూల్ ఒక నిర్దిష్ట సైట్ కోసం, అనగా, PHP-FPM నుండి PHP ప్రాసెసింగ్‌ను వేరు చేయడానికి ఒక కొలను మార్గం, కానీ మేము భాగాలుగా వెళ్తాము.

1. మొదట మనం ఏ సిస్టమ్ యొక్క వినియోగదారుని ఉపయోగిస్తామో తెలుసుకోవాలి, మనకు ఇంకా సృష్టించబడినవి లేవని నేను అనుకుంటాను, దానిని సృష్టించుకుందాం:

కింది అన్ని ఆదేశాలు ప్రత్యక్ష మూలంతో లేదా సుడోను ఉపయోగించి పరిపాలనా అధికారాలతో అమలు చేయాలి

adduser blog

మేము వినియోగదారుని సృష్టించే సాధారణ ప్రక్రియను ప్రారంభిస్తాము, పాస్వర్డ్ను నమోదు చేయండి.

ఉదాహరణను అనుసరించడానికి నేను వినియోగదారుని బ్లాగ్ చేస్తాను, మేము హోస్ట్ చేసే మొదటి సైట్ ఒక బ్లాగ్ అవుతుంది, అలాగే ... ఏ సైట్‌తో సంబంధం ఉన్న ప్రతి వినియోగదారుని తెలుసుకోవడం

1. మొదట /etc/php5/fpm/pool.d/ కి వెళ్దాం:

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

2. ఇప్పుడు, మేము blog.conf అనే ఫైల్ను సృష్టిస్తాము:

touch blog.conf

3. ఇప్పుడు మేము VHost బ్లాగ్ కోసం ఉపయోగించే పూల్ యొక్క కాన్ఫిగరేషన్ను ఉంచుతాము:

Blog.conf ఫైల్‌ను నానోతో సవరించండి ... ఉదాహరణకు: సుడో నానో బ్లాగ్.కాన్ఫ్
[బ్లాగ్] వినియోగదారు = బ్లాగ్
సమూహం = బ్లాగ్
వినండి = / var / run / php5-fpm-బ్లాగ్.sock listen.owner = బ్లాగ్
వినండి. గ్రూప్ = బ్లాగ్
pm = ondemand pm.max_children = 96 chdir = /

గమనిక: నేను వాటిని ఎరుపు రంగులో గుర్తించేది ఏమిటంటే వారు గతంలో సృష్టించిన వినియోగదారుని బట్టి వారు సవరించాలి. ఉదాహరణకు, వారు మరొక వినియోగదారుతో మరొక VHost ను సృష్టిస్తే (ఉదాహరణకు ఫోరమ్) అప్పుడు బ్లాగుకు బదులుగా ప్రతి పంక్తిలో ఫోరమ్ ఉంచండి, అర్థం కాలేదా?

4. కొత్త పూల్ యొక్క కాన్ఫిగరేషన్ ఒకసారి (మేము ఇప్పుడే సృష్టించిన మరియు సవరించిన blog.conf ఫైల్), ఈ సైట్ కోసం, ఆ VHost కోసం వేరే గుంటను ఉపయోగించమని Nginx VHost కి చెప్పడం మలుపు. ఉపయోగించబడే గుంట మేము ఇంతకుముందు ప్రకటించినది (/var/run/php5-fpm-blog.sock). Nginx VHost ని సవరించుకుందాం మరియు PHP ప్రాసెసింగ్ భాగంలో, మేము ఆ సాక్స్లను ఉపయోగించమని సూచిస్తున్నాము. ఉదాహరణకి:

స్థానం ~ ​​\ .php $ {if (! -f $ request_filename) {తిరిగి 404; }
fastcgi_pass unix: / var / run / php5-fpm-బ్లాగ్.సాక్;
fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_read_timeout 300; }

మీరు గమనిస్తే, ఆ VHost యొక్క PHP ప్రాసెసింగ్ (ఆ పంక్తులు ఉదాహరణకు / etc / nginx / sites-enable / vhost-blog లోపల ఉన్నాయి) /var/run/php5-fpm-blog.sock లో కనిపించే సాక్స్‌తో చేయండి ... ఇది /etc/php5/fpm/pool.d/blog.conf ను సవరించేటప్పుడు మనం ఇంతకుముందు సృష్టించినది ... అది అర్థం కాలేదా?

5. ఇది పూర్తయిన తర్వాత, మేము రెండు సేవలను (php5-fpm మరియు nginx) మరియు voila ని పున art ప్రారంభిస్తాము, ఆ సైట్ (vhost) యొక్క ప్రాసెసింగ్ www- డేటా లేదా రూట్ లేదా ఇలాంటి ఎవరైనా చేయలేదని మేము చూస్తాము, కాని మనం గతంలో నిర్వచించబడింది.

ఇక్కడ నేను మీకు a యొక్క అవుట్పుట్ చూపిస్తాను ps ఆక్స్ | grep fpm నా నోడ్ సర్వర్లలో ఒకటి:

ps aux | grep fpm ebook 586 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: పూల్ ఈబుక్ ఈబుక్ 589 0.0 0.0 349360 1204? S Mar30 0:00 php-fpm: పూల్ ఈబుక్ 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: పూల్ టీవీ 3 టీవీ 615 0.0 0.0 349360 1204 30? S Mar0 00:3 php-fpm: పూల్ టీవీ 1818 పత్రిక 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: పూల్ గట్ల్ మ్యాగజైన్ 3.5 1.3 356724 27164 10? S 38:0 00:5624 php-fpm: పూల్ గట్ల్ సిజిఆర్ 0.0 1.0 365168 22696 28? S Apr0 16:7900 php-fpm: పూల్ సిజిఆర్ విద్యార్థి 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: పూల్ విద్యార్థి cgr 0.0 1.0 363152 21708 28? S Apr0 12:13184 php-fpm: పూల్ cgr cgr 0.0 1.0 362872 21360 28? S Apr0 08:XNUMX php-fpm: పూల్ cgr

మీరు చూడగలిగినట్లుగా ... Nginx + PHP-FPM ని ఉపయోగించి వినియోగదారులు PHP ప్రాసెసింగ్‌ను వేరు చేయడం నిజంగా సులభం, అక్కడ చాలా మంది వినియోగదారులు ఉన్నందున అక్కడ అనేక కొలనులు ఉన్నాయని మీరు చూస్తారు.

ముగింపులు

సర్వర్‌ల విషయానికి వస్తే, మీరు ఎప్పటికీ మతిస్థిమితం కలిగి ఉండరు ... భద్రత అనేది ఆడటానికి కాదు, మా సర్వర్‌ల మరియు వారి సేవల భద్రతను మెరుగుపరచడానికి మేము ఎల్లప్పుడూ ప్రయత్నిస్తాము, తక్కువ (విజయవంతమైన) ద్వారా మేము భయపడతాము. హాక్ ప్రయత్నం లేదా ఇలాంటి ఏదైనా


వ్యాసం యొక్క కంటెంట్ మా సూత్రాలకు కట్టుబడి ఉంటుంది సంపాదకీయ నీతి. లోపం నివేదించడానికి క్లిక్ చేయండి ఇక్కడ.

9 వ్యాఖ్యలు, మీదే వదిలేయండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.

  1.   ధూళి అతను చెప్పాడు

    గారా, ప్రస్తుత కాలంలో ఈ విషయాలు సాధ్యమైనంతవరకు ఆటోమేట్ చేయాలి, అన్సిబుల్ ప్రయత్నించమని నేను మీకు సిఫార్సు చేస్తున్నాను. ఏజెంట్ లేకుండా, మీకు రిమోట్ హోస్ట్‌లో పైథాన్ మాత్రమే అవసరం, కాన్ఫిగర్ చేయడానికి చాలా సులభం, యమల్ ఫైల్స్, జింజా టెంప్లేట్లు.

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

    1.    KZKG ^ గారా అతను చెప్పాడు

      చూద్దాం, అది ఎల్లప్పుడూ బ్లాగు సైట్‌లకు మాత్రమే కాదు, మరియు ... హా హా అన్సిబుల్ క్లిక్స్ వోలావ్, కానీ సర్వర్‌లో ప్రతిదీ ఎలా పనిచేస్తుందో తెలుసుకోవడానికి నేను ఇష్టపడతాను, నేను కొత్త సాక్స్ సృష్టించడానికి 1 నిమిషం గడపవలసి వచ్చినప్పటికీ మరియు క్రొత్త VHost

      1.    ధూళి అతను చెప్పాడు

        అన్సిబుల్ తో మీరు అన్నింటినీ ఆటోమేట్ చేస్తారు, మీరు ఆచరణాత్మకంగా మీకు కావలసినది చేస్తారు, ఈ పద్ధతి యొక్క ప్రయోజనం ఏమిటంటే మీరు ప్రాక్టీసును కలుపుకొని ఆపై ఇష్టానుసారం అమలు చేయడం, మీకు భారీగా లోడ్ చేయబడిన సైట్ ఉందని imagine హించుకోండి మరియు మీరు అప్లికేషన్ సర్వర్ల మధ్య లోడ్ బ్యాలెన్సింగ్ చేయాలనుకుంటున్నారు, ఇవి మీరు ఒక దశను దాటవేయలేరు లేదా వాటిలో ఒకదానిలో భిన్నంగా ఏమీ చేయలేరు, అదే విధంగా 4 వ దశ ద్వారా ప్రక్రియ చేయడం imagine హించగలరా? అన్సిబుల్ తో ఇది జాబితా పేరు మరియు Voilá కు హోస్ట్ పేరును జోడించినంత సులభం !!

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

      2.    ధూళి అతను చెప్పాడు

        అన్సిబుల్ కల్ట్ గురించి క్షమించండి, కానీ మీరు కనుగొన్న ఈ సాంకేతిక పరిజ్ఞానాలలో ఇది ఒకటి మరియు ఇది చాలా బాగుంది మరియు ఆచరణాత్మకమైనది కాబట్టి ప్రతి ఒక్కరూ ఇప్పుడు ఉపయోగించాలని మీరు కోరుకుంటారు, మీరు ఎన్జిఎన్ఎక్స్ను కనుగొన్నప్పుడు మరియు మీ స్నేహితులందరూ వెంటనే అపాచీని విడిచిపెట్టాలని మీరు కోరుకుంటారు.

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

  2.   మస్తారవిన్ అతను చెప్పాడు

    నా పోస్ట్ దీన్ని పూర్తి చేస్తుందని నేను ఖచ్చితంగా అనుకుంటున్నాను ...
    http://blog.ngen.com.ar/configuracion-segura-de-un-webserver-con-nginx-php-fpm/

  3.   రోట్స్ 87 అతను చెప్పాడు

    నేను డెవలపర్‌ని (లేదా ఉండటానికి అధ్యయనం చేస్తున్నాను) మరియు NGIX తో nginx + php-fpm ను కాన్ఫిగర్ చేసేటప్పుడు నాకు చాలా సమస్యలు ఉన్నాయి. ఆర్చ్లినక్స్ డిస్ట్రో దీన్ని సర్వర్‌గా చేయడానికి ఉత్తమమైనది కాదని నాకు తెలుసు, కాని ప్రతిసారీ నేను ఎన్‌జిక్స్ లేదా పిహెచ్‌పి యొక్క సంస్కరణను నవీకరించినప్పుడు ప్రతిదీ క్రాష్ అయ్యింది కాబట్టి నేను ప్రయత్నాన్ని వదులుకున్నాను ... ఈ రోజు నేను క్లాసిక్ అపాచీ + తో ఉంటాను PHP కానీ నేను మళ్ళీ NGIX చుట్టూ వెళితే చూస్తాను ... బహుశా వర్చువల్ మెషీన్లో

    1.    ధూళి అతను చెప్పాడు

      మనస్తత్వం కొంచెం మారుతుంది, nginx స్టాటిక్ కంటెంట్‌ను అందిస్తుంది మరియు నిజమైన PHP ని నడుపుతున్న php-fpm కోసం రివర్స్ ప్రాక్సీగా పనిచేస్తుంది, మీరు భాగాలుగా ప్రారంభించి దశలవారీగా విస్తరణను సాధించాలి, అమలు చేయడానికి ఒక గైడ్ కోసం చూడండి మీరు పనిచేసే ఫ్రేమ్‌వర్క్, ప్రతి దాని వివరాలు ప్రజల పేర్లు, స్థిర, వనరులు మొదలైన వాటి ద్వారా ఉంటాయి ...

  4.   అజ్ఞాత అతను చెప్పాడు

    ఉనికిలో లేని "హోస్టేర్" అనే పదాన్ని వదలివేయడానికి సమాజానికి గొప్ప అనుకూలంగా ఉండండి. దేవుని చేత, "హోస్ట్" అని చెప్పడం అంత కష్టమేనా?

  5.   విల్ అతను చెప్పాడు

    శుభాకాంక్షలు, మీ ఉదాహరణను అనుసరించి నేను ఒక పూల్‌ను బ్లాగు బ్యాకెన్ కోసం మాత్రమే తయారు చేయగలనా అని తెలుసుకోవాలనుకుంటున్నాను, అనగా, బ్యాకెండ్‌కు ఇన్‌కమింగ్ కనెక్షన్ల కోసం కొత్త సాకెట్‌ను తయారుచేసే wp- అడ్మిన్ కోసం

    స్థానం / wp-admin {
    రూట్ /var/www/yoursite.com/wp-admin;
    ఇండెక్స్ index.php index.html index.htm;
    స్థానం ~ ​​^ / wp-admin /(.+. php) $ {
    try_files $ uri = 404;
    రూట్ /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/;
    }
    }