1台nginx服务器多台php服务器

1台nginx服务器多台php服务器,nginx,cluster-computing,Nginx,Cluster Computing,我错过了什么? 让我们这样简单地说: 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

我错过了什么? 让我们这样简单地说:

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/public/?它如何知道文件是否存在?我试着玩它,但我总是

404找不到

因此,我遗漏了一些东西,但无法理解如果php服务器没有安装nginx,会发生什么

nginx如何在不同的服务器上访问“/var/www/html/public/ 服务器?它如何知道文件是否存在

nginx
无法确定上游PHP服务上是否存在该文件。它将向PHP服务传递一个脚本路径名,如果它不存在,PHP服务将返回404响应

PHP服务可能使用
fastcgi_param SCRIPT_FILENAME
参数来查找上游脚本文件。参数应该在
snippets/fastcgi php.conf
文件中定义

该值通常设置为
$document\u root$fastcgi\u script\u name
。由配置文件中的
root
指令设置的
$document\u root
的值

只有当上游服务器上的脚本被放置在与
nginx
服务器指定的目录层次结构完全相同的目录层次结构中时,这才有效。否则,您可能需要手工编制
SCRIPT\u FILENAME
参数的值

nginx如何在不同的服务器上访问“/var/www/html/public/ 服务器?它如何知道文件是否存在

nginx
无法确定上游PHP服务上是否存在该文件。它将向PHP服务传递一个脚本路径名,如果它不存在,PHP服务将返回404响应

PHP服务可能使用
fastcgi_param SCRIPT_FILENAME
参数来查找上游脚本文件。参数应该在
snippets/fastcgi php.conf
文件中定义

该值通常设置为
$document\u root$fastcgi\u script\u name
。由配置文件中的
root
指令设置的
$document\u root
的值


只有当上游服务器上的脚本被放置在与
nginx
服务器指定的目录层次结构完全相同的目录层次结构中时,这才有效。否则,您可能需要手工编制
SCRIPT\u FILENAME
参数的值。

这里没有指定nginx应该自己尝试提供文件。理论上,如果查询字符串以
.php
结尾,它只会将请求传递给phpfpm守护进程。哪个url对您不起作用?当nginx和php在同一台服务器上时,此配置已经起作用了。不管我是否尝试使用.php相同的404错误。您在这里没有指定nginx应该自己尝试提供文件。理论上,如果查询字符串以
.php
结尾,它只会将请求传递给phpfpm守护进程。哪个url对你不起作用?当nginx和php在同一台服务器上时,这个配置已经起作用了。不管我使用还是不使用。php相同的404错误谢谢,如果我浏览到:9000,我应该看看网站吗?因为它返回502,所以我可以调试问题出在哪里,你应该不能冲浪到它。它使用FastCGI协议,而不是HTTP协议。谢谢,如果我浏览到:9000,我应该看看网站吗?因为它返回502,所以我可以调试问题出在哪里,你应该不能冲浪到它。它使用FastCGI协议,而不是HTTP协议。