Яка різниця між використанням поточного і розташування для 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

Я виявив, що, nginxпринаймні, 1.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


Ви не маєте ip_hash для PHP? А що з кеепалів?
CMCDragonkai

1
Це має бути fastcgi_pass php;замість цього
rhgb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.