rate limit login pages for grafana and gitea
This commit is contained in:
parent
dadbca219e
commit
32c79b486a
@ -1,3 +1,16 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
limit_req_zone $binary_remote_addr zone=req_gitea_login:10m rate=10r/m;
|
||||
|
||||
upstream gitea_backend {
|
||||
{% if gitea_config.server.protocol is defined and
|
||||
gitea_config.server.protocol == 'unix' %}
|
||||
server unix:{{ gitea_config.server.http_addr }};
|
||||
{% else %}
|
||||
server 127.0.0.1:{{ gitea_port }};
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
{% if ansible_all_ipv6_addresses | length %}
|
||||
@ -5,6 +18,9 @@ server {
|
||||
{% endif %}
|
||||
server_name {{ gitea_domain }};
|
||||
|
||||
access_log /var/log/nginx/gitea.access.log main;
|
||||
error_log /var/log/nginx/gitea.error.log warn;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/html;
|
||||
try_files $uri =404;
|
||||
@ -27,6 +43,9 @@ server {
|
||||
{% endif %}
|
||||
server_name {{ gitea_domain }};
|
||||
|
||||
access_log /var/log/nginx/gitea.access.log main;
|
||||
error_log /var/log/nginx/gitea.error.log warn;
|
||||
|
||||
{% if gitea_ssl_certificate is defined %}
|
||||
ssl_certificate {{ gitea_ssl_certificate }};
|
||||
{% endif %}
|
||||
@ -37,13 +56,14 @@ server {
|
||||
ssl_dhparam {{ gitea_ssl_dhparam }};
|
||||
{% endif %}
|
||||
|
||||
location ~ /user\/login {
|
||||
limit_req zone=req_gitea_login burst=10;
|
||||
proxy_pass http://gitea_backend;
|
||||
}
|
||||
|
||||
location / {
|
||||
{% if gitea_config.server.protocol is defined and
|
||||
gitea_config.server.protocol == 'unix' %}
|
||||
proxy_pass http://unix:{{ gitea_config.server.http_addr }};
|
||||
{% else %}
|
||||
proxy_pass http://localhost:{{ gitea_port }};
|
||||
{% endif %}
|
||||
limit_req zone=req_bad_actors burst=10 nodelay;
|
||||
proxy_pass http://gitea_backend;
|
||||
}
|
||||
}
|
||||
{% endif %}
|
||||
|
@ -1,3 +1,11 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
limit_req_zone $binary_remote_addr zone=req_grafana_login:10m rate=10r/m;
|
||||
|
||||
upstream grafana_backend {
|
||||
server 127.0.0.1:{{ grafana_port }};
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
{% if ansible_all_ipv6_addresses | length %}
|
||||
@ -5,6 +13,9 @@ server {
|
||||
{% endif %}
|
||||
server_name {{ grafana_domain }};
|
||||
|
||||
access_log /var/log/nginx/grafana.access.log main;
|
||||
error_log /var/log/nginx/grafana.error.log warn;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/html;
|
||||
try_files $uri =404;
|
||||
@ -27,6 +38,9 @@ server {
|
||||
{% endif %}
|
||||
server_name {{ grafana_domain }};
|
||||
|
||||
access_log /var/log/nginx/grafana.access.log main;
|
||||
error_log /var/log/nginx/grafana.error.log warn;
|
||||
|
||||
{% if grafana_ssl_certificate is defined %}
|
||||
ssl_certificate {{ grafana_ssl_certificate }};
|
||||
{% endif %}
|
||||
@ -37,8 +51,14 @@ server {
|
||||
ssl_dhparam {{ grafana_ssl_dhparam }};
|
||||
{% endif %}
|
||||
|
||||
location /login {
|
||||
limit_req zone=req_grafana_login burst=10;
|
||||
proxy_pass http://grafana_backend;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:{{ grafana_port }};
|
||||
limit_req zone=req_bad_actors burst=10 nodelay;
|
||||
proxy_pass http://grafana_backend;
|
||||
}
|
||||
}
|
||||
{% endif %}
|
||||
|
Loading…
Reference in New Issue
Block a user