Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx代理Php-fpm7.2+;远程静态文件_Php_Nginx_Proxy - Fatal编程技术网

Nginx代理Php-fpm7.2+;远程静态文件

Nginx代理Php-fpm7.2+;远程静态文件,php,nginx,proxy,Php,Nginx,Proxy,我试图为一个使用php和symfony依赖项的web应用程序提供服务 我使用nginx作为代理重定向到适当的应用程序和服务器。 我成功链接了nginx代理php fpm tcp套接字。但我仍然有一个问题。在继续之前,请参阅我的nginx代理配置 upstream myapp { server mydomain.com:80 fail_timeout=0; } server { listen 80; server_name myapp.mydomain.co

我试图为一个使用php和symfony依赖项的web应用程序提供服务

我使用nginx作为代理重定向到适当的应用程序和服务器。 我成功链接了nginx代理php fpm tcp套接字。但我仍然有一个问题。在继续之前,请参阅我的nginx代理配置

upstream myapp {
    server mydomain.com:80 fail_timeout=0;
}

server {
    listen       80;
    server_name  myapp.mydomain.com;
    return       301 https://myapp.mydomain.com.com$request_uri;
}

server {
    listen 443 ssl;
    server_name  myapp.mydomain.com;
    root         /var/www/myapp/public;


    ssl_certificate /etc/nginx/ssl/wildcard.mydomain.com.pem;
    ssl_certificate_key /etc/nginx/ssl/wildcard.mydomain.com.key;

    access_log /var/log/nginx/myapp.mydomain.com.access.log;
    error_log /var/log/nginx/myapp.mydomain.com.error.log error;
    error_page 404 /index.php;

    client_max_body_size 256m;

    location / {
    proxy_pass http://myapp/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        auth_basic           "Please authenticate";
        auth_basic_user_file /etc/nginx/passwords/myapp.mydomain.com.passwdfile;
        try_files $uri $uri/ /index.php$is_args$args;        


    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass XX.XX.XX.XX:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_intercept_errors on;
    }
}

这真的很奇怪,因为当我设置
try_files$uri$uri//index.php$is_args$argsphp正在响应,但我在所有远程静态文件上都有一个404。当未设置时,我完全可以得到静态文件,但找不到index.php


我确实错过了代理上的一些配置,但我没有得到它。

try\u files
仅适用于本地文件,因此它对远程文件总是失败,并转到
/index.php
而不是.Hmmm好的,但我可以对远程文件做同样的操作吗?如果远程服务器返回
404
,是否要转移到
index.php
?您可以尝试
proxy\u intercept\u错误;错误\u第404页=/index.php/
,我将永远不会使用index.php。如果您希望URI
/
映射到
/index.php
,您可以尝试添加另一个位置块:
位置=/{index.php;}