鉴于以下网址,我如何让NGINX自动将URL的最后部分(不是GET参数,而是基本网址的最后一部分 - myMap )自动传递给fastcgi_param SCRIPT_FILENAME?
网址:
http://localhost/mapserver/myMap?&LAYERS=base....
NGINX配置:
location /mapserver/ {
fastcgi_pass unix:/tmp/mapserver.sock;
fastcgi_index mapserv?*;
fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/mapserv?map=/mapfiles/myMap.map;
include fastcgi_params;
}
感谢。
答案 0 :(得分:2)
文档说明您可以使用fastcgi_param
值中的变量:
设置应传递给FastCGI服务器的参数。该值可以包含文本,变量及其组合。当且仅当在当前级别上没有定义fastcgi_param指令时,这些指令才从上一级继承。
因此,您可以使用具有正则表达式和捕获组的位置:
location ~ /mapserver/(.*)$ {
fastcgi_pass unix:/tmp/mapserver.sock;
fastcgi_index mapserv?*;
fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin/mapserv?map=/mapfiles/$1.map;
include fastcgi_params;
}
请注意,此类位置在请求处理期间具有特定优先级。