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