nginx fast-cgi仅某些php文件

时间:2019-07-13 04:03:56

标签: nginx

我有一个有效的nginx / php-fpm安装程序,但是我需要将某些php文件代理到另一台服务器。这是我似乎没有用的东西

# clisupp and other supporting files
  location /swsupport/ {
    add_header X-debug-message "Proxied" always;
    proxy_pass http://swsupport;
  }

location ~ \.php$ {
      add_header X-debug-message "A php file was used" always;
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass php:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
  }

发出http://localhost/swsupport/clisupp/swtoday/index.php之类的请求时,将由php位置而不是/swsupport/位置处理。这是一个实际示例的图片。如您所见,使用了与PHP位置相对应的X-debug-message标头。

enter image description here

1 个答案:

答案 0 :(得分:1)

正则表达式 location优先于普通前缀location,除非使用了^~修饰符。

在您的配置中,/swsupport/块仍在处理以.php开头和以location ~ \.php$结尾的URI。

有关详细信息,请参见this document

例如:

location ^~ /swsupport/ { ... }