Разделение по IP

chmoknutij nginx-forum на nginx.us
Пт Авг 28 13:28:23 UTC 2015


День добрый всем.

Возникла необходимость спрятать доступ до административной части сайта за
конкретный IP адрес.
В данный момоент есть 4 зоны:
some.domain.com/group1
some.domain.com/group2
some.domain.com/group3
some.domain.com/admin

Посмотрел в конфиг, посмотрел в мануал Nginx-а, посмотрел в гугл и слепил
что-то вроде этого, но не взлетело. А почему не взлетело, понять не могу.

location ~ ^(\/admin\/.+\.php)$ {
    allow xxx.xxx.xxx.xxx;
    deny all;

    include fastcgi_params;
    fastcgi_pass unix:/tmp/php.sock;
    fastcgi_split_path_info       ^(.+\.php)(.*)$;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO       $fastcgi_path_info;
}

И сам конфиг (без этой части), который меня встретил и дал мне по щам:

server {
    listen  80;
    listen  443 ssl;

    server_name  some.domain.com;

    rewrite ^(.*)$ https://$server_name$1 permanent;

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH
EDH+aRSA RC4 !aNULL !eNULL !LOW !3DE
    ssl_certificate     /etc/nginx/certs/crt;
    ssl_certificate_key /etc/nginx/certs/key;
    ssl_trusted_certificate /etc/nginx/certs/trusted;
    ssl_prefer_server_ciphers on;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_stapling                on;
    ssl_stapling_verify         on;

    access_log  /var/log/nginx/access.log  main;
    error_log  /var/log/nginx/error.log;

    root   /home/user/www;

    location / {
        index  index.php index.html index.htm;

        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php/$1 last;
            break;
        }
    }

    location ~ ^(.+\.php)(.*)$ {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php.sock;
        fastcgi_split_path_info       ^(.+\.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
    }

    location ~ /\.ht {
        deny  all;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   html;
    }
}

Буду признателен, если кто-нибудь наведет меня на правильную мысль.
С наилучшими.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,261320,261320#msg-261320



Подробная информация о списке рассылки nginx-ru