Назад | Перейти на главную страницу

Как использовать пользовательские каталоги с Nginx с аутентификацией

Я использую хост на основе Debian и использую Nginx и PHP-FPM, я хочу включить пользовательские каталоги в nginx и хочу также многопользовательскую поддержку с базовой аутентификацией. Это означает, что когда Алекс откроет www.example.com/rutorrent; Это запросит логин и пароль и после аутентификации. Это должно указывать на его собственную версию php-скрипта, расположенную в / home / alex / www / rutorrent, и когда Боб откроет www.example.com/rutorrent; Это предложит войти и пароль и после аутентификации. Это должно указывать на его скрипт php, расположенный в / home / bob / www / rutorrent.

Я уже пробовал официальную документацию, расположенную здесь: http://wiki.nginx.org/UserDir

Но я не уверен, как настроить их в файл по умолчанию, чтобы я мог получить желаемую функциональность, мой файл конфигурации по умолчанию для nginx находится здесь:

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


}

Есть ли способ получить это?

Благодаря помощи мне, я получил подсказку, как исправить проблему с каталогами пользователей, я использую переменную $ remote_user в основном файле конфигурации nginx, имя пользователя Nginx записывает в переменную $ remote_user, пока мы используем базовую аутентификацию, так что очень красивый и простой способ использовать каталоги пользователей если мы включим подобное таким образом:

/home/$remote_user/..

Вы не можете сделать это с помощью файла конфигурации nginx. Вам лучше использовать php-скрипт, подключенный к базе данных для аутентификации, а затем использовать перенаправление.