Nginx Múltiplas localizações

0

Eu já tenho 5 horas aqui pensando em como resolver, mas não posso.

Supondo que tenhamos a seguinte estrutura de diretório

/var/www/key1
/var/www/key1/wwwdir
/var/www/key1/dir1
/var/www/key1/dir2

E outro

/var/www/key2
/var/www/key2/wwwdir
/var/www/key2/dir1
/var/www/key2/dir2

Eu quero, quando digito, por exemplo, link para obter arquivos de /var/www/key1/wwwdir e quando eu digitar < strong> link para obter arquivos de /var/www/key2/wwwdir

Eu tenho a seguinte configuração nginx para todos os meus "keys"

server {
    listen       80;

    include /etc/nginx/conf.d/*.conf;

    location ~ /\.ht {
            deny all;
    }
}

E o key1.conf é

location ~/key2 {

    chunked_transfer_encoding off;
    index index.php index.html index.htm;
    alias /var/www/key2/wwwdir;

    location ~* \.php$ {


        try_files $uri = 404;
        fastcgi_index   index.php;
        fastcgi_pass unix:/var/php-fpm/key2.sock;
        include /etc/nginx/fastcgi_params;
        fastcgi_keep_conn on;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
}

O que não funciona. Quando estou solicitando o seguinte link de recebo erro de gateway BAD.

Em /var/log/nginx/error.log , há um erro que /var/www/key2/wwwdir/key2/index.php that file does not exists (o key2 existe 2 vezes, o que não sei porquê)

Quando eu digito

http://mysite.com/key2 i deseja obter arquivos de /var/www/key2/wwwdir .

Exemplos:

http://mysite.com/key2 => /var/www/key2/wwwdir
http://mysite.com/key2/admin => /var/www/key2/wwwdir/admin

Claro que eu quero o mesmo com o meu outro vhost key1

    
por OhGodWhy 10.10.2015 / 18:16

1 resposta

1

Você deve usar alias em vez de root .

Explicação: se você usar root o uri após location será anexado a rootdir . Esta é a razão pela qual aparece key2 duas vezes. Mas se você usar alias o uri após location não será anexado.

Por exemplo:

location /test {
  root /wwwdir/mydir;
}

O example.com/test/index.html serve /wwdir/mydir/test/index.html .

location /test {
  alias /wwwdir/mydir;
}

A parte example.com/test/index.html serve /www/mydir/index.html ( test não aparece).

Veja mais aqui .

    
por 10.10.2015 / 20:54

Tags