Soumya Sivasankar, Chief Executive Officer at SupportSagesAbhilash Padmanabhan, Chief Technology Officer at SupportSages

Our leadership team is attending CloudFest Americas, from Nov 4 to 16. Schedule a Connect

Our Leadership team is attending CloudFest Americas 2026, from Nov 4 to 16.

Meet us in Miami to discuss MSP growth, DevOps excellence, and Cloud Transformation. Available for 1:1 meetings, Schedule a Connect

CloudFest logo
  • DevOps
    Case Study

    How we helped a development company rebuild DevOps for efficiency and scale.

    READ CASESTUDY
    icon

    24/7 DevOps as a Service

    Round-the-clock DevOps for uninterrupted efficiency.

    icon

    Infrastructure as a Code

    Crafting infrastructure with ingenious code.

    icon

    CI/CD Pipeline

    Automated CI/CD pipeline for seamless deployments.

    icon

    DevSecOps

    Integrated security in continuous DevOps practices.

    icon

    Hire DevOps Engineers

    Level up your team with DevOps visionaries.

    icon

    Consulting Services

    Navigate success with expert DevOps consulting.

  • TechOps
    Case Study

    How a US hosting leader scaled with us!

    READ CASESTUDY

    WEB HOSTING SUPPORT

    icon

    HelpDesk Support

    Highly skilled 24/7 HelpDesk Support

    icon

    Product Support

    Boost your product support with our expertise.

    MANAGED SERVICES

    icon

    Server Management

    Don’t let server issues slow you down. Let us manage them for you.

    icon

    Server Monitoring

    Safeguard your server health with our comprehensive monitoring solutions.

    STAFF AUGMENTATION

    icon

    Hire an Admin

    Transform your business operations with our expert administrative support.

    icon

    Hire a Team

    Augment your workforce with highly skilled professionals from our diverse talent pool.

  • CloudOps
    Case Study

    How we helped a Private Deemed University in India, save US $3500/m on hosting charges!

    READ CASESTUDY
    icon

    CloudOps as a Service

    24/7 monitoring, incident response, and cost-optimized cloud operations

    icon

    AWS Well Architected Review

    Round-the-clock for uninterrupted efficiency

    icon

    Optimize

    Efficient CloudOps mastery for seamless cloud management

    icon

    Manage

    Simplify compliance complexities with our dedicated service

    icon

    Migrate

    Upgrade the journey, Migrate & Modernize seamlessly

    icon

    Modernize

    Simplify compliance complexities with our dedicated services

  • SecOps
    Case Study

    Enabling financial grade platforms through strategic cloud modernisation.

    READ CASESTUDY
    icon

    VAPT

    Vulnerability Assessment and Penetration Testing

    icon

    Source Code Review

    Ensuring source code security ans safe practices to reduce risks

    icon

    Security Consultation

    On demand services for improving server security

    icon

    System Hardening

    Reduced vulnerability and proactive protection

    icon

    Managed SoC

    Monitors and maintains system security. Quick response on incidents.

    icon

    Compliance as a Service

    Regulatory compliance, reduced risk

  • K8s
  • Insights
    Case Study

    How we helped a Private Deemed University in India, save US $3,500/m on hosting charges!

    READ CASESTUDY
    icon

    Blog

    Explore our latest articles and insights

    icon

    Case Studies

    Read about our client success stories

    icon

    Flipbook

    Explore our latest Flipbook

    icon

    Events

    Join us at upcoming events and conferences

    icon

    Webinars

    Watch our educational webinar series

  • Contact Us

Interested to collaborate?

Get in touch with us!

Contact us today to learn how our team can help you leverage our managed cloud and DevOps services so you can focus on growing your business.

  • White Label Managed IT Services for MSPs
  • White Label MSP Support Services
  • Managed HelpDesk Services
  • White Label Maintenance Services for WordPress
  • Outsourced WebHosting Support
  • Hosting HelpDesk Support Services
  • cPanel Server Management
  • Plesk Server Management
  • DevOps Automation Services
  • DevOps Containerization Services
  • DevOps Engineering Services Experts
  • DevOps Maturity Assessment
  • DevOps Testing Services & Automation
  • DevOps Implementation Services
  • DevOps Transformation Services
  • White Label Kubernetes IT Services
  • Cloud Automation Services
  • Cloud Modernization Services
  • Database Migration Services
  • DevOps Outsourcing Services

AWS

  • AWS DevOps Services for Scalable Cloud
  • AWS Well-Architected Review
  • AWS Migration Services

Azure

  • Azure DevOps Services & Automation
  • Azure Migration Services

Google Cloud

  • Google Cloud Managed Services
  • Google Cloud Migration Services
  • Google Cloud Platform Services
  • AWSAWS
  • Azure CloudAzure Cloud
  • Google CloudGoogle Cloud
  • Akamai CloudAkamai Cloud
  • OVHOVH
  • Digital OceanDigital Ocean
  • HetznerHetzner
  • CloudOps as a Service
  • FinOps as a Service
  • Managed DigitalOcean Cloud
  • Managed OVH Cloud
  • Managed Hetzner Cloud
  • Managed Akamai Cloud
  • Oracle Managed Services
  • Our story
  • Life@SupportSages
  • Insights
  • Careers
  • Events
  • Contact Us
  • Sitemap

AWS Partner

AWS Advanced Tier Services PartnerAWS Well-Architected PartnerAWS Partner DevOps ServicesAWS Public Sector Partner40+ AWS Certified Engineers

Compliance

ISO 27001 certifiedGDPR compliant
LinkedInFacebookXInstagramYouTube
SupportSages

Copyright © 2008 - 2026 SupportSages Pvt Ltd. All Rights Reserved.
Privacy PolicyLegal TermsData ProtectionGDPRCookie Policy

mod_evasive False Positive: Why Images Fail on First Load

Author Profile
Muhammed Sahil
  • 9 min read
mod_evasive False Positive: Why Images Fail on First Load

Generating audio, please wait...

Introduction

Your site loads, but the logo is missing and a few images show up as broken boxes. You refresh, and everything appears. If that sounds familiar, you may be dealing with a mod_evasive false positive. This Apache module can mistake a normal page load for an attack and block the visitor for a few seconds.

This guide is for server administrators, hosting providers and web developers who run Apache servers. You will learn why it happens, how to confirm it in your logs, and how to fix it without leaving the server exposed. Once you know what to look for, the fix is usually quick.

What mod_evasive Does and How It Decides to Block a Visitor

mod_evasive is an Apache module built to slow down HTTP flood attacks and brute-force attempts. It keeps a table of client IP addresses and the URLs they request. When one address asks for too much, too quickly, the module answers with 403 Forbidden and blocks that address for a short time. The upstream documentation sets that block at 10 seconds by default.

The Checks and Default Limits

Every request is checked against the blocklist, then against two limits. The upstream README lists the defaults below. Your server may use different values, so check your own configuration. Each Apache child process keeps its own counters, so the same page load can be counted differently depending on which process serves it.

How mod_evasive decides whether to serve or block a request
Flow chart showing how mod_evasive checks each request against the blocklist, the same-URL limit and the site-wide limit before it returns 403 Forbidden or serves the file

Figure 1. The checks mod_evasive runs on every request, with the default limits.

Setting 

What it limits 

Default 

DOSPageCount 

Requests for the same URL per interval 

2 

DOSSiteCount 

Requests for any file from one IP per interval 

50 

DOSPageInterval / DOSSiteInterval 

Length of each counting window 

1 second 

DOSBlockingPeriod 

How long a blocked IP stays blocked 

10 seconds 

 

What Causes a mod_evasive False Positive on Image-Heavy Pages?

A modern page is never one request. The browser fetches the HTML, then every stylesheet, script, font and image the page needs, in parallel. All of those requests come from one IP address, so mod_evasive counts them together. Only files served by your own server count, but a page with a visual page builder, a slider and a few dozen images can still send more than 50 of them in a single second.

Why the First Load Fails and a Refresh Works

On a first visit the browser cache is empty, so it asks for everything at once. If that burst crosses the site limit, mod_evasive blocks the visitor and every file requested afterwards is refused. Each blocked request also resets the timer, so the block lasts as long as the browser keeps asking. The logo, icons and images that arrive late are the ones that go missing.

On a refresh, the browser already holds the files that loaded. It only requests the missing ones, the count stays low, and the page finishes loading. That is why the problem looks random and disappears on the second try.

Why a first load can be blocked while a refresh works
Two charts comparing a first visit with an empty cache, where requests per second cross the default limit of 50 and the visitor is blocked, with a refresh that stays far below the limit

Promotional banner

Figure 2. A cold load can cross the limit; a refresh usually does not.

Why HTTP/2 Makes It Easier to Trigger

HTTP/2 lets a browser request many files at once over a single connection. A connection is served by a single Apache child process, so the whole burst lands in the same counters. Browsers using HTTP/1.1 open several connections, which can spread the requests across more processes.

How Likely Is This on Your Server?

More likely than the module's design suggests. The README carries a 2005 date (version 1.10), long before HTTP/2 and page builders. In the 2025 Web Almanac from HTTP Archive, the median desktop page made 77 requests and the 90th percentile made 185. Not every request goes to one server, and not all arrive in the same second, but a heavy page can pass a limit of 50 without any attack involved.

Spotting a mod_evasive 403 Forbidden or 404 Error in Your Logs

Start in the browser. Open developer tools, go to the Network tab, tick Preserve log and Disable cache, then reload. Look for failed requests for files you know exist, and for repeated 403 or 404 errors in the Console. The upstream module returns 403, but a custom error page, a different build or a rewrite rule in front of the file can change the status the browser reports. Judge by the pattern instead: the file exists on disk and fails only during a burst of requests. Some genuine 404s for missing files may remain after a refresh. Those are a separate problem, so check them against the files on disk.

Then check the server. Confirm the module is loaded and search the system log:

httpd -M 2>/dev/null | grep -i evasive
grep -i evasive /var/log/messages | tail -50

On Debian and Ubuntu, use apache2ctl -M and search /var/log/syslog instead. A block is logged as a line similar to Blacklisting address x.x.x.x: possible attack. Many admins check Apache's own error log first, and some builds write there, so search it too:

grep -i evasive /var/log/apache2/error.log | tail -50

Compare the time of any entry with your Apache access log for the same IP. If the module is not loaded, or no such entry exists, look at other layers such as a firewall, ModSecurity or a CDN.

How to Disable mod_evasive or Tune It Safely

Option 1: Turn the Module Off

If a firewall, WAF, bot protection or CDN already handles rate limiting, mod_evasive adds little. The README itself notes that the module only goes so far on its own and recommends integrating it with firewalls and routers. Remove it the way it was installed (package manager or manual build), or comment out its LoadModule line. Then test the configuration and restart Apache:

apachectl configtest
apachectl restart

Option 2: Keep It and Raise the Limits

Size the limits to your heaviest page. As a rule, set DOSSiteCount above the number of files that page loads from your own server in one second, and allow a few repeat requests for the same URL. These values are examples, not a recommendation for every server:

<IfModule mod_evasive20.c>
    DOSPageCount       20
    DOSSiteCount       300
    DOSPageInterval    1
    DOSSiteInterval    1
    DOSBlockingPeriod  10
    # Single IP
    DOSWhitelist       203.0.113.10
    # Wildcard: whitelists the whole 203.0.113.0/24 range
    DOSWhitelist       203.0.113.*
</IfModule>

Match the IfModule name to your build, because packages differ. Use DOSWhitelist for your own monitoring tools, office networks and API clients; the upstream documentation advises against whitelisting customers. It takes a single IP or a wildcard in place of an octet, not CIDR notation. If a control panel generates your Apache configuration, add the directives in the panel's supported custom-include location so a rebuild does not overwrite them. Restart Apache afterwards: block tables live in memory, so a restart also clears any block still active.

If you look after many servers, keeping these settings consistent is easier with 24/7 server management and support services.

Confirm the Fix

Open the site in the browser that failed, with developer tools open and Disable cache ticked, and hard-reload several times. Every logo, image and icon should load, and the system log should show no new "Blacklisting address" lines. For a burst test from a test machine, use ApacheBench (ab, from the apache2-utils or httpd-tools package), which sends requests concurrently:

ab -n 100 -c 20 https://yourdomain.com/path/to/logo.png

This sends 100 requests, 20 at a time. A loop of sequential curl calls is not a reliable test: each request finishes before the next starts, so it may never reach a per-second limit and can pass while the problem remains. Note that ab requests a single URL, so it mainly exercises DOSPageCount. If your limit is lower than -n, the Non-2xx responses line will show failures, so keep -n below it when testing a fix.

Frequently Asked Questions

How long does a mod_evasive block last?

Ten seconds by default, set by DOSBlockingPeriod. Every request made during a block resets the timer, so a browser that keeps asking for files can stay blocked longer.

Can it block search engine crawlers or monitoring tools?

Yes. It counts requests per IP address and cannot tell a crawler from a visitor. Add your own trusted tools to DOSWhitelist.

Is it safe to turn mod_evasive off?

It is when another layer already limits request rates, such as a firewall, WAF or CDN. Without one, keep the module and raise its limits instead.

Conclusion

A fast first load can cross a limit that was set for a much smaller web. The visitor is blocked for a few seconds, a refresh works around it, and the files were never missing. Confirm the cause with your browser's developer tools and the system log, then either switch the module off where other layers protect the server, or raise its limits to fit your heaviest page. Test with the cache disabled before you call it fixed.

Not sure which layer is blocking your visitors? The server management team at SupportSages can review your Apache modules, firewall rules and logs, and fix the cause with you. Talk to a server management expert.

  • TechOps
  • Apache
  • Troubleshooting
  • Security

Continue Your Journey With…

Server Management

Server Management

Let us take the burden of Server Management off your hands. Our expert team handles everything, from Server Hardening and Third-party Software installations to 24/7 Monitoring, Reboot Assistance, Server Migrations, and Backup Configuration.

Server Monitoring

Server Monitoring

Uninterrupted service delivery can only be assured through constant monitoring of services and servers.

System Hardening

System Hardening

Reduce attack surface with hardened OS, network, and cloud configurations tailored to your environment.

Promotional banner
Promotional banner

Posts by Muhammed Sahil

    cPanel Login Failures: Diagnosing and Fixing System-Wide Outages

    cPanel Login Failures: Diagnosing and Fixing System-Wide Outages
    • TechOps
    • cPanel
    • Troubleshooting
    logo

    How to Fix MX Records When Emails Disappear in cPanel

    How to Fix MX Records When Emails Disappear in cPanel
    • cPanel
    • Email service
    • DNS
    • TechOps
    logo