[error] access forbidden by rule

Илья Шипицин chipitsine на gmail.com
Вт Июл 12 14:39:34 UTC 2022


вт, 12 июл. 2022 г. в 18:46, Gena Makhomed <gmm на csdoc.com>:

> On 10.07.2022 11:41, Maxim Dounin wrote:
>
> > Вы чуть раньше в этом треде писали Илье, "client sent plain HTTP
> > request to HTTPS port".  Как и другие ошибки в клиентских
> > запросах, эти ошибки логгируются на уровне info.
>
> nginx/1.23.0 из официального репозитория nginx.org
>
> В error.log есть такая запись:
>
> 2022/07/12 16:00:00 [error] 16594#16594: *21415 access forbidden by
> rule, client: 62.46.205.111, server: gitlab.example.com, request: "GET
> /api/v4/user HTTP/2.0", host: "gitlab.example.com"
>
> То, что какому-то клиенту возвращается 403 статус - разве это ошибка,
> которую необходимо писать в error.log на уровне [error] а не [info] ?
>
> Кстати, директивы limit_conn_log_level и limit_req_log_level
> зачем-то по умолчанию стоят на уровне error, как будто это есть
> ошибка на стороне сервера, если какому-то клиенту будет запрещен
> доступ.
>

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


>
> Директива deny_log_level в nginx вообще отсутствует.
>

отсутствие возможности поменять - да, это реальная проблема

>
> Может быть имеет смысл сделать директиву deny_log_level
> и для всех трех директив: limit_conn_log_level,
> limit_req_log_level и deny_log_level сделать значением
> по умолчанию info ?
>
> Это было бы логично и соответствовало бы общему правилу,
> что все ошибки в клиентских запросах логгируются на уровне info.
>
> P.S.
>
> Конфиг /etc/nginx/conf.d/gitlab.example.com.conf:
>
> server {
>
>      listen 443 ssl http2;
>
>      server_name gitlab.example.com;
>
>      ssl_certificate
> /etc/letsencrypt/live/gitlab.example.com/fullchain.pem;
>      ssl_certificate_key
> /etc/letsencrypt/live/gitlab.example.com/privkey.pem;
>
>      location / {
>          allow 111.222.33.144;
>          allow 172.17.113.100;
>          allow 172.17.113.101;
>          allow 172.17.113.102;
>          allow 172.17.113.103;
>          deny all;
>          proxy_pass http://172.17.113.100:9000;
>      }
>
>      location /users/auth/google_oauth2/callback {
>          proxy_pass http://172.17.113.100:9000;
>      }
>
>      location /-/google_api/auth/callback {
>          proxy_pass http://172.17.113.100:9000;
>      }
> }
>
> server {
>
>      listen 80;
>
>      server_name gitlab.example.com;
>
>      location / {
>           return 301 https://gitlab.example.com$request_uri;
>      }
>
>      location /.well-known/acme-challenge { default_type text/plain;
> root /opt/letsencrypt; }
> }
>
> Конфиг /etc/gitlab/gitlab.rb на сервере 172.17.113.100:
>
> nginx['listen_port'] = 9000
>
> nginx['listen_https'] = false
>
> --
> Best regards,
>   Gena
> _______________________________________________
> nginx-ru mailing list -- nginx-ru на nginx.org
> To unsubscribe send an email to nginx-ru-leave на nginx.org
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20220712/b545d34b/attachment.htm>


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