Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk11 min

Why Nginx Slows Down After Enabling SSL and How to Fix It

TLS handshakes are the main CPU cost when NGINX serves HTTPS. This guide shows how to measure handshake reuse, tune workers and keepalive, configure a shared session cache, validate certificate chains, and troubleshoot HTTPS upstreams without guessing.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

NGINX usually slows after HTTPS is enabled because TLS adds CPU work, and the most expensive part is the handshake. If clients perform full handshakes instead of reusing connections or sessions, latency rises and throughput falls; once the workers run out of CPU, ordinary HTTP requests slow as well. The practical fix is to measure handshake and reuse counters, run enough workers, keep client connections alive, configure a shared session cache, verify the certificate chain, and preserve TLS reuse to HTTPS upstreams.

There is no universal percentage improvement. The correct settings depend on the NGINX and OpenSSL versions, processor capacity, request mix, client behavior, certificate configuration, and whether NGINX also encrypts connections to a backend.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What HTTPS adds to an NGINX request

With plain HTTP, a client can send an application request as soon as it connects. HTTPS adds a TLS negotiation before that request can be processed. NGINX documentation states that SSL operations consume extra CPU resources and identifies the SSL handshake as the most CPU-intensive operation. A full handshake therefore consumes processor time and adds a round trip before the first response byte.

That cost is paid most visibly when many short-lived client connections arrive at once. A page containing many assets, an API client that closes sockets after every call, or a load test that disables connection reuse can create far more handshakes than requests would suggest. A resumed TLS session is cheaper than a full handshake, and multiple requests sent over one persistent TLS connection avoid new handshakes altogether.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

CPU pressure is not the only possible symptom. A configuration can have enough aggregate CPU but still show latency when the number of NGINX workers is too low, when all workers are busy handling handshakes, or when an incomplete certificate chain makes clients retry negotiation. If NGINX proxies to an HTTPS backend, there is a second TLS leg with its own connection and session-reuse behavior.

Measure the slowdown before changing settings

Record a baseline under a repeatable workload. Capture the same request set before and after each change so that a cache adjustment is not confused with a worker-count change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Request latency, including time to first byte and total response time.
  • Throughput, such as requests per second or bytes per second.
  • CPU utilization and whether the machine is CPU-saturated during the test.
  • NGINX active, idle, and waiting connections.
  • TLS counters from the NGINX API, especially handshakes, handshakes_failed, and session_reuses.
  • For proxied HTTPS, connection and TLS behavior on the upstream leg as well as the client-facing leg.

The NGINX API counters are more useful than a vague impression that HTTPS feels slower. A high handshake count with few session reuses points to connection churn or an ineffective session cache. A high handshakes_failed count points toward certificate, protocol, client-compatibility, or resource problems rather than a simple keepalive timeout. If handshakes and reuse look healthy but workers remain saturated, investigate worker capacity and the application or upstream instead.

Observed signal What it suggests Next check
Many handshakes, few session_reuses Clients are opening new TLS connections or resumed sessions are not being found. Check client keepalive behavior, keepalive_timeout, and a shared ssl_session_cache.
High handshakes_failed Negotiation is failing before normal request processing. Validate the certificate chain, protocol settings, logs, and client compatibility.
High CPU with handshakes tracking traffic TLS work is consuming available processor time. Align worker_processes with available processors and reduce avoidable handshakes.
Low handshake rate but slow first byte The bottleneck may be response generation, buffering, an upstream, or network delay. Compare front-end TLS counters with upstream timing and application metrics.
Front-end is healthy but proxied HTTPS is slow The second TLS connection may not be reused. Inspect proxy_ssl_session_reuse and upstream connection reuse.

Change one setting at a time, repeat the same workload, and keep the result only if the relevant counter and latency move in the expected direction. The cited NGINX documentation does not publish a universal speed-up percentage, so any gain must be measured on the deployed system.

Run enough NGINX workers for the machine

Each worker needs CPU time to process handshakes and application traffic. If a small, fixed worker count is used on a multi-core host, workers can become a bottleneck even when idle cores are available. NGINX’s HTTPS configuration example uses worker_processes auto, allowing NGINX to choose a count based on the machine.

Start with the automatic setting or with a count deliberately matched to the processors available to the NGINX process. Do not assume that adding workers always helps: too many workers can increase scheduling and memory overhead, while a container may expose fewer CPUs than the physical host. Confirm the effective configuration and the installed build with nginx -V, then observe CPU usage and request latency during a controlled test.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
worker_processes auto;

Worker count fixes capacity; it does not remove handshake work. If the handshake counter is high and session reuse is low, increasing workers alone may spread the cost without reducing it. Pair worker tuning with connection and session reuse.

Keep client TLS connections alive

A persistent client connection lets several HTTP requests share one TLS connection. That is usually the simplest way to avoid repeated handshakes for browsers, API clients, and service-to-service callers that make multiple requests to the same endpoint.

Set an explicit keepalive_timeout appropriate for the traffic pattern. The documented multi-core HTTPS example uses 70 seconds:

server {
    listen 443 ssl;
    keepalive_timeout 70;
}

A longer timeout can improve reuse when clients send requests in bursts, but it also keeps idle sockets and their associated memory around. A shorter timeout releases resources sooner but makes clients reconnect more often. Choose the value by watching idle connections, handshake counts, and latency under the real request pattern. The client must also support and use persistent connections; a server-side timeout cannot force a client that closes every socket to reuse TLS.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a shared SSL session cache

Connection reuse is not always possible. Mobile networks change, clients restart, load balancers open fresh sockets, and some applications deliberately close connections. TLS session resumption can still avoid the full cost when a client reconnects. NGINX recommends a shared session cache across workers:

http {
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
}

NGINX documents that approximately 4,000 sessions fit in 1 MB of shared cache. The documented default session timeout is five minutes; the example above deliberately uses ten minutes. A larger cache can retain more resumable sessions, but it consumes shared memory. Size it from observed reconnect volume and the period over which clients return rather than choosing a large value blindly.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

The cache must be shared so that a session created by one worker can be found by another. NGINX documentation notes that using only the shared cache, without the built-in per-worker cache, should be more efficient. Keep the configuration simple unless a specific compatibility requirement calls for another arrangement, and verify the result by checking whether session_reuses rises while full handshakes fall.

Choice Effect Trade-off
Persistent client connection Several requests share one TLS connection and need no additional handshake. Idle sockets remain allocated until the keepalive timeout.
Resumed session from shared cache A new connection can avoid the full handshake cost. Shared memory is consumed and entries expire after the configured timeout.
Full handshake Negotiates TLS from scratch. Highest CPU cost and additional connection latency.

Check the certificate chain and how certificates are loaded

For a normal server certificate, configure a complete chain in the correct order: the server certificate first, followed by the required intermediate certificates. Clients need that chain to build trust. A malformed bundle can prevent NGINX from starting, while a missing intermediate can produce client negotiation or validation failures even though the server appears to be running.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the actual certificate and key paths in the deployed configuration, test the configuration before reload, and inspect client-facing errors as well as NGINX error logs. A chain problem can look like a performance problem because clients retry failed handshakes or fall back to different connection behavior. It should be corrected before tuning buffers or worker counts.

NGINX also warns about certificates whose filenames are built from variables. In that arrangement, a certificate is loaded for each SSL handshake, which can hurt performance. Prefer fixed certificate paths when the certificate set is known. Variable-based loading is a specialized design; use it only when its per-handshake loading cost and operational trade-offs are understood.

Handle HTTPS upstreams separately

When NGINX proxies to an HTTPS backend, the client-facing TLS session and the upstream TLS session are different. Improving front-end keepalive does not automatically make backend handshakes cheap. Reuse upstream TLS sessions and connections where the backend and proxy configuration support it.

Keep proxy_ssl_session_reuse enabled unless the documented digest-check error occurs. Disabling it as a precaution forces more full handshakes to the backend and can add CPU and latency. If that specific error is present, follow the documented exception, then measure the resulting upstream handshake rate and response time. Do not infer an upstream problem solely from front-end counters; instrument or log the backend leg separately.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Treat the SSL buffer size as a measured trade-off

NGINX’s ssl_buffer_size defaults to 16k. The documentation notes that a smaller value, such as 4k, can reduce time to first byte for some workloads, while 16k minimizes overhead for large responses. Those goals can conflict.

Workload priority Value to test What to watch
Small responses or faster first byte Test 4k against the 16k default. Time to first byte, CPU, packet behavior, and total latency.
Large response throughput Retain or validate the 16k default. Bytes per second, CPU overhead, and total transfer time.

Do not treat 4k as a universal optimization. Change only this directive, run the same workload, and revert it if first-byte time does not improve or if throughput and CPU efficiency worsen.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use conservative protocol settings and verify versions

The documented configuration examples show TLS 1.2 and TLS 1.3. Keep the protocol set supported by the installed NGINX and OpenSSL versions and by the clients you must serve. Removing a protocol can improve policy compliance in a controlled environment, but changing it solely because HTTPS is slow can create compatibility failures without addressing handshake volume.

Directive defaults and available features vary by NGINX and OpenSSL version. Recent releases document additional certificate-caching directives, while older installations may not have them. Check nginx -V, read the reference for the exact installed version, and validate the generated configuration before rollout. A setting copied from a current example is not automatically valid on an older build.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical baseline configuration

This pattern follows the structure of NGINX’s documented multi-core HTTPS example. Replace the paths and values with choices appropriate for the deployed version, certificate lifecycle, client population, and workload.

worker_processes auto;

http {
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

    server {
        listen              443 ssl;
        keepalive_timeout   70;
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_certificate     /path/fullchain.pem;
        ssl_certificate_key /path/privkey.pem;
    }
}

The pattern addresses worker availability, client connection reuse, resumed sessions, protocol compatibility, and a complete certificate path. It does not guarantee an improvement by itself: cache size, timeout, buffer size, and protocol choices still need to be validated against the installed versions and measured traffic.

Apply the fixes in a controlled order

  1. Capture the baseline. Record latency, throughput, CPU, active and idle connections, and the NGINX API values for handshakes, handshakes_failed, and session_reuses.
  2. Confirm worker capacity. Check the effective processor allocation and use worker_processes auto or a deliberate count aligned with available processors. Retest before changing another variable.
  3. Inspect connection reuse. Verify that clients can keep sockets open and set a suitable keepalive_timeout. A rising idle-connection count is acceptable only if handshakes per request decline and memory remains within limits.
  4. Add or correct the shared cache. Configure a shared cache such as shared:SSL:10m, select a timeout based on reconnect behavior, and confirm that session_reuses increases.
  5. Validate certificates. Check the leaf and intermediate ordering, fixed certificate paths, and configuration syntax. Resolve chain errors before performance comparisons.
  6. Check the upstream leg. If the backend uses HTTPS, verify connection reuse and leave proxy_ssl_session_reuse enabled unless the documented digest-check error is logged.
  7. Test buffer behavior last. Compare the 16k default with a tested 4k value only when first-byte latency or large-response throughput is the specific issue.

After each step, compare the same workload with the previous result. If a change lowers handshakes but raises memory, or improves first byte while reducing large-response throughput, keep it only if that trade-off matches the service’s priority.

Troubleshooting common outcomes

CPU remains high after enabling the cache

First verify that full handshakes actually declined. A cache that is too small, a timeout shorter than the client return interval, or clients that do not resume sessions can leave the handshake rate high. If reuse is already healthy, the remaining CPU may come from application work, compression, logging, or an HTTPS upstream rather than front-end TLS.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Session reuse is still near zero

Check that the cache is shared across workers, that the configuration was loaded after the change, and that clients are reconnecting within the session timeout. Also check whether a proxy or load-balancing layer terminates TLS before the request reaches this NGINX instance; that changes which component owns the session.

Clients report certificate or handshake errors

Inspect the certificate bundle order and intermediates, then review protocol compatibility and NGINX error logs. A malformed bundle can stop startup; a missing chain element can fail only for clients that do not already possess the intermediate. Do not mask the error by disabling protocol checks or session reuse.

Large downloads got slower after changing the buffer

Restore the 16k default and compare total transfer throughput, not only time to first byte. The smaller buffer is intended as a workload-specific experiment and may increase overhead for large responses.

Proxy requests slowed after an upstream change

Check whether proxy_ssl_session_reuse was disabled and whether the documented digest-check error is present. If no such error exists, restore reuse and measure upstream handshakes separately from client-facing handshakes.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What to expect from optimization

HTTPS does impose real CPU work, but the size of the penalty is workload-dependent. A service with long-lived connections and resumed sessions may perform close to its non-TLS request rate, while a service that creates a full handshake for every small request can spend much of its CPU budget negotiating encryption. NGINX’s published guidance identifies the expensive operation and the controls that avoid repeating it, but it does not promise a fixed gain.

The reliable decision rule is therefore operational: reduce unnecessary full handshakes, make session state available to every worker, provide enough worker capacity, send a valid chain, and preserve reuse on both TLS legs. Measure the counters and the workload after every change, and keep only settings that improve the metric your users actually experience.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.