Solusi 1:
location
digunakan untuk mencocokkan ekspresi dan membuat aturan untuknya.
upstream
mendefinisikan server yang dapat direferensikan.
Dalam contoh Anda, ini berarti jika Anda ingin mendapatkan persamaan untuk
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
, Anda akan membutuhkan
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;
}
Manfaat blok upstream adalah Anda dapat mengonfigurasi lebih dari satu server/port/layanan sebagai upstream dan mendistribusikan lalu lintas di dalamnya, misalnya seperti ini:
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;
}
Anda dapat menemukan informasi lebih lanjut tentang ini di dokumentasi nginx:
http://nginx.org/en/docs/http/ngx_http_upstream_module.html
Solusi 2:
Saya telah menemukan itu, pada nginx
1.6.2 setidaknya, sintaks yang berfungsi untuk saya untuk blok lokasi adalah:
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi.conf;
}
yaitu:seseorang tidak boleh menentukan http://
protokol sebelum mereferensikan backend php. http://php
sintaks akan digunakan dengan proxy_pass
instruksi, bukan fastcgi_pass
.