Configurando nginx, reescrita e fastcgi

1

Este problema tem me deixado maluco nos últimos dois dias ... Trabalhando em um aplicativo que precisa de autenticação e existe de diferentes partes (CMS, API, frontend), encontramos alguns problemas com o compartilhamento de sessões / cookies / solicitações de origem cruzada. No final, achei que era mais fácil implantar tudo em um domínio;

  • scheme: // app / para o frontend
  • scheme: // app / api para a API
  • scheme: // app / cms para o CMS

isso causou alguns problemas para a compilação da API no php. A API espera o like_uri como / users / images em vez de / api / users e / api / users. Nós pensamos que uma simples reescrita seria a solução, mas de alguma forma o request_uri não é reescrito.

Aqui está a configuração do servidor:

server {
    listen 9090;
    server_name coda.dev;

    access_log      /usr/local/var/log/nginx/coda.access.log;
    error_log       /usr/local/var/log/nginx/coda.debug.log notice;
    charset         utf-8;

    rewrite ^/(.*)/$ /$1 permanent;

    location / {
        proxy_pass       http://localhost:9000;
    }

    location /api {
        root /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public;
        try_files $uri /index.php;
    }

    location ~/cms {
        proxy_pass       http://localhost:9000;
    }

    location ~ \.php {            
        fastcgi_pass  127.0.0.1:9091;
        fastcgi_index index.php;
        include       /usr/local/etc/nginx/fastcgi.conf;
        fastcgi_param DOCUMENT_ROOT /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public;
        fastcgi_param SCRIPT_FILENAME /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public/index.php;
        break;
    }
}

Eu também tentei adicionar isso para sobrescrever o request_uri:

fastcgi_param REQUEST_URI $uri?$args;

Mas isso resultou em cada requisição recebendo o request_uri index.php

Então, como eu posso enviar todos os pedidos começando com / api para o diretório da minha API e reescrever o request_uri para remover / api do uri?

    
por thomasjonas 28.12.2013 / 21:50

0 respostas