nginx 作为多个应用程序的反向代理

nginx 作为多个应用程序的反向代理

我想使用 nginx 作为多个应用程序的反向代理(在 docker 中)。它们存在于 nginx 容器中的不同目录中:/var/www/app1/var/www/app2等。

我的default.conf

resolver 127.0.0.11 valid=15s;

server {
  listen 80;
  server_name www.example.com example.com;
  set $upstream phpmyadmin:9000;

  location ^~ /phpmyadmin {
   #alias /var/www/html/;                 # <----- this works
    alias /var/www/phpmyadmin/;
    index index.php;
    location ~ \.php$ {
      try_files     $uri = 404;
      fastcgi_pass  $upstream;
      include       fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $request_filename;
    }
  }

}

如果我安装 docker 应用程序(phpmyadmin),/var/www/html/则上述 nginx 配置即可工作。

但我真正想要的是将其安装到 中/var/www/phpmyadmin/。当我这样做时,我收到错误:

FastCGI 在 stderr 中发送:“主脚本未知”,同时从上游读取响应头

答案1

删除前缀$fastcgi_script_name

fastcgi_split_path_info ^\/phpmyadmin\/(.+\.php)(.*)$;

然后使用它:

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

相关内容