Como combinar reescrita de url e fastcgi em nginx?

2

Eu tenho problemas para configurar uma combinação de reescrita de url e fastcgi para o nginx. O servidor de aplicativos por trás da interface fastcgi espera / myapp / as base path. E quero tornar isso acessível sob o meu link

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;
  }

Não importa o que eu tente, sempre recebo o caminho da raiz do servidor de aplicativos. Eu lembro que eu tinha problemas na época fazendo o mesmo com o apache, mas esqueci até hoje que tentei fazer isso com o nginx. Qualquer ajuda é apreciada. obrigado.

    
por Norbert Hartl 31.03.2011 / 18:06

1 resposta

3

Eu não acho que você precise de dois locais aqui. Aqui está uma parte de uma das minhas configurações:

        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;
        }
    
por 21.04.2011 / 09:19