rate limit login pages for grafana and gitea
This commit is contained in:
		@@ -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 %}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user