2016-08-28 8 views
1

私は行方不明ですか? は、この単純なのconfを言うことができます:1 nginxサーバー複数のPHPサーバー

upstream php { 
    server 111.1111.1111.1111:9000; 
} 
server { 
    listen 80 reuseport; 


    root /var/www/html/public/; 
    index index.php; 
    location/{ 
     set $orig_uri $uri; 
     try_files $uri $uri/ /index.php?$query_string; 
    } 

location ~ \.php$ { 
     ssi on; 
     include snippets/fastcgi-php.conf; 
     fastcgi_param REQUEST_URI $orig_uri$is_args$args; 
     fastcgi_cache_key "$scheme$request_method$orig_uri$is_args$args"; 
     add_header X-Cache-Key $scheme$request_method$orig_uri$is_args$args; 
     add_header X-Cache $upstream_cache_status; 
     # With php5-cgi alone: 
     #fastcgi_pass 127.0.0.1:9000; 
     # With php5-fpm: 
     #fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_pass php; 
     } 
} 

どのように異なるサーバー上のnginxのつもりアクセス "/ var/www/htmlと設定/公開/"?ファイルが存在するかどうかをどのように知るでしょうか?私はそれで遊ぶことを試みたとPHPサーバはnginxのは

+0

あなたはnginxのは、それ自身でファイルを提供しようとすべきであることを、ここで指定していません。理論的には、クエリ文字列が '.php'で終わった場合にphpfpmデーモンに要求を渡します。どのURLがあなたのためにうまくいかなかったのですか?私はWebサイトを参照してくださいする必要があり9000:nginxのとPHPはとにかく同じサーバー上にある、私は –

+0

この設定はすでに、動作しますか?私が問題になっている場所でデバッグすることができるので、 –

答えて

0

どのようにインストールされているいけない場合、私はいつも、

が見つかりません

404は、だから私は何かが欠けていますが、何を理解カントnginxは異なる サーバ上の "/ var/www/html/public /"にアクセスしますか?ファイルが存在するかどうかをどのように知るでしょうか?

nginxファイルが上流のPHPサービスに存在するかどうかを判断できません。スクリプトパス名をPHPサービスに渡します。存在しない場合、PHPサービスは404応答を返します。

PHPサービスは、おそらく上流のスクリプトファイルを検索しfastcgi_param SCRIPT_FILENAMEパラメータを使用しています。パラメータは、snippets/fastcgi-php.confファイルで定義する必要があります。

これは通常$document_root$fastcgi_script_nameの値に設定されています。 $document_rootの値は、構成ファイルのrootディレクティブによって設定されます。

nginxサーバーで指定されたアップストリームサーバー上のスクリプトがまったく同じディレクトリ階層に配置されている場合にのみ動作します。それ以外の場合は、SCRIPT_FILENAMEパラメータの値を手作業で作成する必要があります。

+0

おかげでとの.php同じ404エラーなしにしようとしたとき、私はにサーフィン場合 –

+1

あなたはそれにサーフすることはできません。 FastCGIプロトコルを使用し、HTTPプロトコルは使用しません。 –

関連する問題