Php-fpm के लिए अपस्ट्रीम और स्थान का उपयोग करने में क्या अंतर है?


18

मैं इधर-उधर खोजता रहा लेकिन कोई सीधा जवाब नहीं मिला, अगर कोई इसे स्पष्ट कर सकता है, तो बहुत सराहना होगी, धन्यवाद!

location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

या और?

upstream php {
    server         unix:/run/php-fpm/php-fpm.sock;
}

धन्यवाद!

जवाबों:


9

मैंने पाया है कि, nginx1.6.2 कम से कम, स्थान ब्लॉक के लिए मेरे लिए कार्य सिंटैक्स है:

location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   php;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

वह है: किसी को http://php बैकएंड को संदर्भित करने से पहले प्रोटोकॉल को निर्दिष्ट नहीं करना चाहिए । http://phpवाक्य रचना के साथ इस्तेमाल किया जा रहा है proxy_pass, निर्देश नहीं fastcgi_pass


23

location का उपयोग अभिव्यक्तियों से मेल खाने और उनके लिए नियम बनाने के लिए किया जाता है।

upstream उन सर्वरों को परिभाषित करता है जिन्हें संदर्भित किया जा सकता है।

आपके उदाहरण में इसका मतलब है कि यदि आप एक समकक्ष प्राप्त करना चाहते हैं

location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

, आपको आवश्यकता होगी

upstream php {
    server         unix:/run/php-fpm/php-fpm.sock;
}
location ~ \.php$ {
    try_files      $uri = 404;
    fastcgi_pass   php;
    fastcgi_index  index.php;
    include        fastcgi.conf;
}

अपस्ट्रीम ब्लॉक का लाभ यह है कि आप एक से अधिक सर्वर / पोर्ट / सर्विस को अपस्ट्रीम के रूप में कॉन्फ़िगर कर सकते हैं और उन पर ट्रैफ़िक वितरित कर सकते हैं, उदाहरण के लिए:

upstream php {
    server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;
    server 192.68.1.2     weight=5;
    server         unix:/run/php-fpm/php-fpm.sock;
}

आप इसके बारे में अधिक जानकारी nginx प्रलेखन में पा सकते हैं:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html


क्या आप PHP के लिए ip_hash nee करते हैं? क्या रखने के बारे में?
CMCDragonkai

1
इसके fastcgi_pass php;बजाय होना चाहिए
rhgb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.