私は周りを検索してきましたが、正解を見つけることができませんでした。誰かがこれを明確にしていただければ、感謝します。
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;
}
ありがとう!
nginx
1.6.2以降、ロケーションブロックの構文は次のとおりです。
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi.conf;
}
つまり、phpバックエンドを参照する前にhttp://
プロトコルを指定しないでください。 http://php
構文は、proxy_pass
ではなくfastcgi_pass
命令で使用されます。
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のドキュメントをご覧ください。