Nginx代理Php-fpm7.2+;远程静态文件
我试图为一个使用php和symfony依赖项的web应用程序提供服务 我使用nginx作为代理重定向到适当的应用程序和服务器。 我成功链接了nginx代理php fpm tcp套接字。但我仍然有一个问题。在继续之前,请参阅我的nginx代理配置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
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$args代码>php正在响应,但我在所有远程静态文件上都有一个404。当未设置时,我完全可以得到静态文件,但找不到index.php
我确实错过了代理上的一些配置,但我没有得到它。try\u files
仅适用于本地文件,因此它对远程文件总是失败,并转到/index.php
而不是.Hmmm好的,但我可以对远程文件做同样的操作吗?如果远程服务器返回404
,是否要转移到index.php
?您可以尝试proxy\u intercept\u错误;错误\u第404页=/index.php谢谢Richard我明白你的意思了。但是如果我不强制try files使用index.php,如果它/
,我将永远不会使用index.php。如果您希望URI/
映射到/index.php
,您可以尝试添加另一个位置块:位置=/{index.php;}