nginx中如何结合url重写和fastcgi?

nginx中如何结合url重写和fastcgi?

我在为 nginx 设置 URL 重写和 fastcgi 组合时遇到了麻烦。fastcgi 接口后面的应用程序服务器需要 /myapp/ 作为基本路径。我想让它在我的http://myserver.com/

upstream appfcgi {
  server 127.0.0.1:6000;
  server 127.0.0.1:6001;
  server 127.0.0.1:6002;
  fair;
}


server {
  listen 80 default;
  server_name myserver.com;
  root /var/www;

  location / {
     rewrite  ^(/.*)$ /myapp$1 last;
  }

  location /myapp/ {
     include /etc/nginx/fastcgi_params;
     fastcgi_intercept_errors on;
     fastcgi_pass appfcgi;
  }

无论我怎么尝试,我总是会显示应用程序服务器的根路径。我记得当时我使用 apache 做同样的事情时遇到了麻烦,但直到今天我尝试使用 nginx 时才忘记。任何帮助都非常感谢。谢谢。

答案1

我认为这里不需要两个位置。这是我的一个配置的一部分:

        location / {
          root    /path.to.app/;
          index   index.php index.html;
          rewrite                 ^/(.*)$ /index.php?query=$1 break;
          fastcgi_pass            127.0.0.1:9000;
          fastcgi_index           index.php;
          fastcgi_param           SCRIPT_FILENAME  /path.to.app/$fastcgi_script_name;
          include                 fastcgi_params;
        }

相关内容