Oleg A. Mamontov
March 11, 2020 03:54PM
On Wed, Mar 11, 2020 at 01:12:08PM -0400, suberjin wrote:
>Здравствуйте.
>
>Я хотел бы заблокировать доступ к сайту по geoip признаку. При этом, мне бы
>хотелось возвращать стилизированную картинку.
>
>я это вижу как-то так:
>
> if ($allowed_country = no) {
> return 403;
> error_page 403 /errors/deny.html;
> }
>
>В самом конфиге много location-ов. Я не хотел бы копировать этот код во все
>из них.
>Алетрнатива - указать его глобально, но тогда я не могу использовать в блоке
>if - "error_page 403 /pages/unavailable.html; " Эту директиву нельзя
>использовать в том контексте.
>
>В итоге у меня получается или указать блокирование глобально в директиве
>server, но без красивой ошибки или копировать код во все location-ы

Вот такой вариант вам не подойдет?
---
server {
listen 80;
server_name example.com;

if ( $allowed_country = no ) {
set $allowed_country yes; # breaking loop
rewrite ^ /deny last;
}

location / {
proxy_pass http://backend;
}
location = /deny {
internal;
error_page 403 /errors/deny.html;
return 403;
}
location /errors/ {
internal;
root /var/www/html;
}
}
---

Может и не образец красоты, но работать должно.

>Конфиг выглядит примерно так:
>
>
>server {
> listen 443 ssl http2; ## listen for ipv4
> listen [::]:443 ssl http2; ## listen for ipv6
>
> server_name example.com;
>
> root /var/www/html/
>
> location / {
> if ($allowed_country = no) {
> return 403;
> error_page 403 /pages/unavailable.html;
> }
> }
>
> location = /admin {
> try_files $uri /index.php$is_args$args;
>
> if ($allowed_country = no) {
> return 403;
> error_page 403 /pages/unavailable.html;
> }
>
> }
>
>
> location /errors/ {
> root /var/www/html/errors/;
> internal;
> }
>
>}
>
>Подозреваю, что я что-то не так делаю. Прошу помочь. Спасибо!
>
>Posted at Nginx Forum: https://forum.nginx.org/read.php?21,287292,287292#msg-287292
>
>_______________________________________________
>nginx-ru mailing list
>nginx-ru@nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru

--
Cheers,
Oleg A. Mamontov

mailto: oleg@mamontov.net

skype: lonerr11
cell: +7 (903) 798-1352
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Блокирование доступа с custom error page

suberjin March 11, 2020 01:12PM

Re: Блокирование доступа с custom error page

Andrey Kopeyko March 11, 2020 03:26PM

Re: Блокирование доступа с custom error page

Andrey Kopeyko March 11, 2020 03:28PM

Re: Блокирование доступа с custom error page

suberjin March 11, 2020 03:35PM

Re: Блокирование доступа с custom error page

Oleg A. Mamontov March 11, 2020 03:54PM

Re: Блокирование доступа с custom error page

suberjin March 12, 2020 04:01AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 215
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready