我有一个在线网络服务器,我已经部署了多个应用程序,他们都必须共享域名,所以我的nginx配置有点乱。我最后一次更改它时,PHP文件没有加载错误("访问被拒绝文件")所以我不得不做一些更改,现在其中一个应用程序的配置就像这样:
location ^~ /vuelos_baratos {
root /home/gonzalo;
try_files $uri $uri/ /$uri/index.php /index.php$is_args$args $uri/index.php =404;
#root /usr/share/nginx/html;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
include /etc/nginx/mime.types;
autoindex on;
}
这个应用程序的网址是这样的:
mydomain.com/vuelos_baratos/index.php
mydomain.com/vuelos_baratos/style.css
... 等等。
PHP文件和一切正常,但是如果我尝试访问:
mydomain.com/vuelos_baratos/image.png
我得到图像的二进制数据,我发现这是因为" vuelos_baratos"下的所有文件的标题。设置为type:text / html
我该如何解决这个问题?
答案 0 :(得分:1)
我不认为nginx
负责确定当前配置中的内容类型,因为您将所有内容传递给php-fpm。
您可以将静态和动态部分划分为不同的位置,例如:
location ^~ /vuelos_baratos {
include /etc/nginx/mime.types;
root /home/gonzalo;
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
这应该意味着/vuelos_baratos/image.png
由nginx
处理,而/etc/nginx/mime.types
用于确定内容类型。