LINUX.ORG.RU

Связка Nginx+Apache2. Задача: настроить Basic-auth

 basic-auth,


0

1

Всем привет. На сервере настроен Nginx+Apache2. Нужно настроить Basic auth для доступа к сайту. Мне не понятно вот что: где этот auth делать: на апаче или на nginx? На апаче сделал - пароль не запрашивается. Предполагаю, что это надо делать на nginx. Но верное ли я думаю?


У тебя они как настроены? Если что то похожее на:

location / {
        proxy_pass http://127.0.0.1:80/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* .+\.(jpg|png|css|js|html|htm){
        root /var/www/host/;
}
То при запросе (jpg|png|css|js|html|htm) нужен auth на nginx, при запросе php нужен auth на apache.

TDrive ★★★★★
()

На апаче сделал - пароль не запрашивается

Совсем не запрашивается? Даже если апач открыть напрямую?)

goingUp ★★★★★
()
Ответ на: комментарий от TDrive

Nginx.conf

Спасибо а ответ. Собственно я и написал сюда потому что исходя из текущего конфига nginx - мне непонятно в каком виде он работает. Вот содержимое /etc/nginx/nginx.conf:

user www-data;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
    proxy_read_timeout 500;
    proxy_connect_timeout 500;
    client_max_body_size 100M;
    server_names_hash_bucket_size 64;
    access_log	/var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#    client_max_body_size 6M;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    upstream jira {
        server 127.0.0.1:8888;
    }
}


# mail {
#     # See sample authentication script at:
#     # http://wiki.nginx.org/NginxImapAuthenticateWithApachePhpScript
# 
#     # auth_http localhost/auth.php;
#     # pop3_capabilities "TOP" "USER";
#     # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#     server {
#         listen     localhost:110;
#         protocol   pop3;
#         proxy      on;
#     }
# 
#     server {
#         listen     localhost:143;
#         protocol   imap;
#         proxy      on;
#     }
# }
Maxroy
() автор топика
Ответ на: Открыть апач на прямую от Maxroy

Да, конечно. В нжинксе нету встроенной ломалки паролей, так что то, что он показал-таки страницу с апача наталкивает на мысль, что апач отдал ее без пароля.

goingUp ★★★★★
()
Ответ на: Nginx.conf от Maxroy

Ну вон я же дал тебе ссылку. http://www.nginx.org/ru/docs/http/ngx_http_auth_basic_module.html

«контекст: http, server, location, limit_except»

В твоем случае добавь в раздел http

auth_basic «closed site»;
auth_basic_user_file файл с паролями от апача;

и nginx будет запрашивать пароль абсолютно на любой запрос.

Кстати авторизация через апач с таким конфигом nginx тоже должна нормально работать.

TDrive ★★★★★
()
Ответ на: комментарий от goingUp

апач отдал страницу без пароля

Если апач отдает страницу без пароля, значит что-то в конфиге не так: вот кусок конгфига моего апача, посмотри, пожалуйста, все ли я верно указал ?:

AccessFileName .htaccess
#
# The following lines prevent .htaccess and .htpasswd files from being viewed by Web clients.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

<Directory /home/site/www>
        AuthType Basic
        AuthName "Login please"
        AuthBasicProvider file
        AuthUserFile /usr/projects/site/.htpasswd
        Require user dev
</Directory>

спасибо

Maxroy
() автор топика
Ответ на: комментарий от TDrive

nginx будет запрашивать пароль абсолютно на любой запрос

Странно, но почему-то сайт становится недоступным после добавки в nginx.conf

auth_basic "closed site";
auth_basic_user_file файл с паролями от апача;

Maxroy
() автор топика
Ответ на: апач отдал страницу без пароля от Maxroy

Похоже на правильный, не знаю в чем дело. Я делал так (в .htaccess)

AuthType Basic
AuthName «My Protected Area»
AuthUserFile /var/www/vhosts/site.com/httpdocs/.htpasswd
Require valid-user

goingUp ★★★★★
()
30 сентября 2013 г.
Ответ на: комментарий от TDrive

Раз автор пропал, то буду я за него. Если добавляем

auth_basic «closed site»; auth_basic_user_file file;

в контекст http или server, то авторизация вываливается, но после того как авторизуемся сайт перестает работать, отвечая 403 ошибкой, в логах нгикса никаких ошибок нет. Почему так я не знаю и хочу помощи, возможно это баг ngnix, возможно у меня кривые руки, кто в состоянии окажите помощь.

Santehnick
()
Ответ на: комментарий от Santehnick

403 - доступ запрещен.
Пароль неправильно вводишь господин некромант.

TDrive ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.