在nginx的配置中,"if(!-f $ request_filename){"是否会导致虚拟机性能下降?

mlb*_*ght 5 configuration reverse-proxy nginx

如果将nginx配置为反向代理,那么下面的配置(反直觉)是否会导致性能下降?

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }
Run Code Online (Sandbox Code Playgroud)

这将检查文件是否存在,然后提供它并完成请求.但是,这可能会导致一些I/O发生.如果该文件系统很慢,那么将请求转发到代理服务是否可能更快?

Moh*_*ady 2

就像@mlbright所说,if这很糟糕,请尽可能避免它,对于您想要处理的情况,一个很好的等价物是

location /whatever {
    try_files $uri @app_server;
}
location @app_server {
    proxy_pass http://app_server;
}
Run Code Online (Sandbox Code Playgroud)