Como usar diretórios de usuário com o Nginx com autenticação

3

Eu estou usando o host baseado em Debian e usando Nginx e PHP-FPM, eu quero habilitar diretórios de usuários em nginx e também quer suporte multiusuário com autenticação básica. Isso significa que quando Alex abrir o site www.example.com/rutorrent; Isso irá solicitar login e senha e após a autenticação, isso deve apontar para sua própria versão do script php localizado em / home / alex / www / rutorrent e quando Bob abrirá www.example.com/rutorrent; Isso irá solicitar login e senha e após a autenticação Isso deve apontar para o script php localizado em / home / bob / www / rutorrent.

Eu já tentei a documentação oficial localizada aqui: link

Mas não tenho certeza de como configurá-los no arquivo padrão para que eu possa obter minha funcionalidade desejada, Meu arquivo de configuração padrão do nginx está aqui:

server {
    server_name localhost;

    location / {
          try_files $uri $uri/ /index.html;
    }

    location /doc/ {
           alias /usr/share/doc/;
           autoindex on;
           allow 127.0.0.1;
           allow ::1;
           deny all;
     }

     index index.php index.html index.htm;
     location ~ ^/~([^/]*)(.*)\.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/sites-available/.htpasswd;
            fastcgi_param SCRIPT_FILENAME /home/$1/www$2.php;
            include fastcgi_params;

     }

     location ~ ^/~([^/]*)(.*) {
            autoindex on;
            alias /home/$1/www$2;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/sites-available/.htpasswd;
     }

      location /RPC2 {
            include scgi_params;
            scgi_pass localhost:5000;
     }


}

Existe alguma maneira de conseguir isso?

    
por Pradeep Gupta 04.10.2013 / 17:01

2 respostas

3

Obrigado por me ajudar, eu tenho idéia de corrigir o problema dos diretórios do usuário, estou usando a variável $ remote_user no arquivo de configuração principal do nginx, Nginx captura o nome do usuário na variável $ remote_user enquanto usamos autenticação básica. use os diretórios do usuário se incluirmos desta maneira:

/home/$remote_user/..
    
por 07.10.2013 / 14:00
2

Você não pode fazer isso usando o arquivo de configuração nginx. É melhor você usar um script php conectado ao banco de dados para autenticação e, em seguida, usar um redirecionamento.

    
por 04.10.2013 / 18:29

Tags