我有一个关于 Nginx 配置的问题。我有两个服务器,一个是 Nginx 服务器,另一个是我的 symfony3 Web 应用程序所在的服务器。
这是我的配置:
location /portal/mysite/ {
set $frontRoot /srv/data/apps/mysite-portal-stag/current/web;
set $sfApp app.php; # Change to app.php for prod or app_dev.php for dev
root /srv/data/apps/mysite-portal-stag/current/web;
rewrite ^/portal/mysite/(.*)$ /$1 break;
try_files $uri @sfFront;
}
location @sfFront {
root /srv/data/apps/mysite-portal-stag/current/web;
fastcgi_pass myserver:myport;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $frontRoot/$sfApp;
fastcgi_param SCRIPT_NAME /portal/mysite/$sfApp;
}
该网站的所有PHP脚本都可以正常工作,但是所有静态资产(静态文件)却无法正常显示。我对Nginx的工作原理不够了解,无法确定哪些是静态文件,并且无法通过代理告诉它们不是脚本。请帮忙解决这个问题。
include fastcgi_params
更改为include fastcgi.conf
并删除您设置的fastcgi_param
。而是添加fastcgi_split_path_info ^(.+\.php)(/.*)$;
。在我看来,您传递的路径可能是错误的,这就是为什么事情只有部分工作的原因。我使用反向代理的php-fpm
和nginx
完全正常工作。 - tftd