Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk11 min

Fix the Default Nginx Page Showing Instead of Your Website

Nginx’s default page usually means your request missed the intended server block. Match every hostname, verify the loaded root and location, run nginx -t, reload, and retest the exact port and domain.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If Nginx shows its “Welcome to nginx” page instead of your site, Nginx usually selected a different virtual server than the one you edited. The usual cause is a hostname, port, or listen-address mismatch: the request did not match your server_name, so Nginx served the default server for that listen port. A second common cause is that the selected server block points to the fallback document root.

Confirm the exact hostname and port, inspect the configuration Nginx actually loaded, correct the matching server block and its root, run nginx -t, then reload Nginx. Changing files without validating and reloading cannot change the response.

As an Amazon Associate I earn from qualifying purchases.

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.

What the default page tells you

Nginx chooses a server block in stages. It first groups server blocks by the address and port in their listen directives. It then compares the request’s Host header with the server_name values in that group. If there is no match, Nginx uses the default server for that address and port. The default is normally the first server listed for that port unless a block is explicitly marked with default_server on its listen directive.

That means the default page is not proof that your files disappeared. It is evidence that the request reached a server block whose content or document root is different from the site you intended. An IP-address request, a missing www name, a typo in the hostname, or a request sent to another port can all select the fallback block.

#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.

The root directive then determines where Nginx looks for files. Nginx appends the request URI to the effective root path to form a local filename. A selected location can have its own root; otherwise it inherits the server-level root. Consequently, both server selection and location-level path settings must be checked.

Repair the problem in the right order

  1. Test the real request target. Use the domain visitors enter, including www when applicable, and use the correct HTTP or HTTPS port. Do not assume that testing the server’s IP tests the same virtual host.
  2. Inspect the loaded configuration. Run sudo nginx -T and locate the active server blocks, their listen directives, hostnames, roots, and locations.
  3. Make the hostnames match. Add every exact hostname that should serve this site to server_name.
  4. Correct the effective root and index. Verify that the intended directory contains the index file and that a more-specific location is not changing the path.
  5. Validate before applying. Run sudo nginx -t. Fix every reported error before attempting a reload.
  6. Reload Nginx. Run sudo nginx -s reload or the equivalent reload action in your service manager.
  7. Retest with the intended hostname. Only investigate browser or proxy caching after confirming that the origin is returning the correct server block.

1. Confirm the hostname, scheme, and port you are testing

Start with the address in the browser’s address bar. Treat these as different request targets:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • http://example.com
  • http://www.example.com
  • https://example.com
  • https://www.example.com
  • http://203.0.113.10

The first two normally use port 80 unless a nonstandard port is shown. The HTTPS forms normally use port 443. The IP-address form sends a different Host value and can legitimately receive the default page even when the domain works.

Use a header-only request to test the public hostname without relying on browser rendering:

curl -I http://example.com
curl -I http://www.example.com

To test host matching directly on a local HTTP listener, send the desired Host header to the server’s address:

curl -i -H 'Host: example.com' http://127.0.0.1/

This test is useful when DNS has not been updated yet. It does not replace an HTTPS test, because HTTPS also involves the port and the TLS connection. Test each scheme and hostname that your visitors will use.

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

Interpret the first result

  • The domain and www show different sites: one hostname is probably missing from server_name, or it is handled by another server block.
  • The domain works but the IP shows the Nginx page: the IP request is probably falling through to the default server. That is expected unless you deliberately configure the default server to serve your site.
  • HTTP works but HTTPS shows the default page: inspect the server block listening on the HTTPS port separately. A correct port-80 block does not control a port-443 request.
  • Every target shows the default page: the intended block may not be loaded, its hostname may not match, or its root may still point at the fallback content.

2. Inspect the configuration Nginx actually loaded

Do not rely on the file you remember editing. Distribution packages commonly include a default site, and Nginx may include configuration files from locations you did not open. The authoritative view is Nginx’s configuration dump:

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.
sudo nginx -T

This command tests the configuration and prints the complete active configuration, including included files. Search the output for each server { block and record:

  • the address and port in every listen directive;
  • the exact server_name values;
  • whether default_server is attached to a listen directive;
  • the server-level root and index directives;
  • any location block with its own root, alias, or file-handling rules.

If your edited block does not appear in the dump, Nginx is not loading that file. Editing it repeatedly will have no effect until the file is included by the active configuration. If both your block and a packaged fallback block appear, compare their ports and names rather than assuming the later file wins.

3. Create or correct the server block

For a simple static site on HTTP, the essential directives look like this:

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.
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Replace the example hostnames and path with your own values. This pattern follows Nginx’s core virtual-host arrangement:

  • listen 80; places the block in the port-80 server group. If another address or port is being tested, this block will not be selected for that request.
  • server_name example.com www.example.com; lists the hostnames that should map to this site. Include every name visitors are expected to use. A hostname omitted here can fall through to the default server.
  • root /var/www/example; sets the base directory used to map request URIs to files.
  • index index.html index.htm; tells Nginx which index filenames to try when a request maps to a directory.
  • The location / rule first checks the requested path and its directory form, then returns a 404 when neither exists. It prevents an unrelated fallback file from masking a missing site file.

Keep the trailing semicolon on each directive. A syntax error prevents a successful reload, so always validate after editing.

Match every hostname exactly

Nginx evaluates exact names before wildcard and regular-expression variants. The safest starting point is to list the literal hostnames used by your DNS records and links:

server_name example.com www.example.com;

Do not assume that example.com automatically includes www.example.com. They are separate hostnames in the request’s Host header. If you intentionally use additional names, add each one or configure a deliberate wildcard with an understanding of which other names it can capture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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

Understand the default server setting

default_server belongs to the listen directive, not to server_name. For example:

listen 80 default_server;

That marks the block as the fallback for that listen address and port. It does not make the block a fallback for every port or every address on the machine. A port can therefore have one default while another port has a different default.

If no block is marked explicitly, Nginx uses the first server for that address and port as the default. Reordering files or include statements can therefore change which page appears for unmatched requests. The durable fix is to make the intended hostname match; changing the default is appropriate only when you deliberately want unmatched requests to land on a particular site.

4. Verify the document root and location rules

Once the correct server block is selected, verify the path it uses. Nginx maps a request such as /about.html onto the effective root, producing a local path such as /var/www/example/about.html. For a request to /, Nginx uses the configured index names when the root resolves to a directory.

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

Check the following in the active configuration:

  • The directory in root is the directory that contains this site’s files, not the directory used by the packaged welcome page.
  • The expected index file is present under that directory and its filename matches the index directive.
  • A nested location does not define a different root or otherwise intercept the request.
  • The request path you are testing corresponds to a real file or directory under the selected root.

A more-specific location can override the server-level root for only part of the URL space. For example, a block handling /app/ can send those requests somewhere other than the root used for /. When the homepage looks wrong but a deeper path behaves differently, compare the matching locations rather than changing the global root blindly.

5. Make sure the edited configuration is enabled

The configuration dump is the practical test for whether an edit is active. Run:

sudo nginx -T

Then confirm that the intended server block appears with the expected directives. If it is absent, identify how the main Nginx configuration includes server files and place the block in an included location appropriate to your installation. If an old block remains active, remove or disable it only through your system’s normal configuration process; do not guess at a path or delete files that another service may need.

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.

When two blocks contain the same hostname, Nginx still chooses according to the listen address and port, then the name-selection rules. The fact that your block exists somewhere on disk does not guarantee that it wins the request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

6. Validate before reloading

Run the syntax and file-reference check before applying any change:

sudo nginx -t

A successful result includes a syntax confirmation and a message that the test is successful. Nginx also attempts to open files referenced by the configuration. Treat any error as a stop condition: correct the filename, path, directive, or permission issue reported by the command, then run the test again.

Do not use a reload as a way to discover syntax errors. If validation fails, the running workers continue using the previous valid configuration, so the old default page can remain visible while you troubleshoot.

7. Reload Nginx and retest the origin

After nginx -t passes, apply the configuration gracefully:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo nginx -s reload

You can use the equivalent reload operation provided by your service manager. A successful reload starts workers with the new configuration and gracefully retires the old workers. Nginx does not apply edits merely because a file was saved; a reload or restart is required.

Retest with the exact hostname and scheme:

curl -I http://example.com
curl -I http://www.example.com

If the response is still the fallback page, repeat the selection checks against the loaded configuration. Confirm that the request reached the intended machine and port, that the spelling and punctuation of server_name match the request, and that the selected block’s effective root contains the expected index file.

Why browser or proxy cache is rarely the first fix

Cache clearing cannot make Nginx choose a different server block. First establish that the origin returns the correct content with curl or another direct request. Only after the origin is correct should you investigate a browser cache, reverse proxy, or CDN retaining an older response. Otherwise, a cache purge can hide the actual hostname or configuration error without repairing it.

Compare competing server blocks systematically

When several configurations appear plausible, compare them on the same axes instead of reading them as isolated files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Comparison What to check Why it decides the result
Hostname coverage Does the request’s exact host appear in server_name? Are www and the apex name both covered? Nginx selects matching names before falling back to the default server.
Listen address and port Do the block and request use the same address and port? Server selection is scoped to a listen address/port group.
Default status Which block has default_server, or which block is listed first when none is explicit? An unmatched host is served by that port’s default.
Effective root What server-level root applies, and does the selected location override it? The effective root determines the local file path Nginx opens.
Active configuration Does the block appear in nginx -T after your edit? A file that is not loaded cannot affect requests.
Applied state Did nginx -t pass, followed by a reload? Saved edits are inert until a valid configuration is applied.

Common cases and targeted fixes

The IP address shows the welcome page, but the domain is correct

An IP request does not carry the domain name that identifies your site. Nginx therefore has no matching hostname and uses the default server for that port. Use the domain for normal testing. Configure the default server differently only if serving a meaningful response for unmatched hosts is an intentional requirement.

The apex domain works, but www does not

Add both names to the site’s server_name if both are meant to serve it, then validate and reload. Check the www request directly; do not infer its behavior from the apex hostname.

The configuration looks correct, but the fallback page remains

Use nginx -T to prove that the edited block is loaded. Then compare its listen port and hostname with the request. If those match, inspect the effective root and any nested location. Finally, confirm that a successful validation was followed by a reload.

Nginx reports an error during nginx -t

Do not reload until the test succeeds. Read the reported file and line, correct the syntax or referenced path, and rerun the test. A failed test leaves the previously running configuration in place, which explains why the old page continues to appear.

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

HTTP is fixed but HTTPS is not

Inspect the server block for the HTTPS listen port independently. Port-specific defaults and hostname matching mean that a working port-80 block does not automatically control an HTTPS request. Ensure the HTTPS block covers the hostname and uses the intended root, then validate and reload.

The homepage is correct but one URL serves unexpected content

Inspect the most specific location that matches that URL. A location-level root or file rule can override the server-level settings for a subset of paths. Compare the URL with the local path Nginx constructs from the effective root and request URI.

A compact end-to-end example

Suppose the public site is example.com and www.example.com, and its files are in /var/www/example. The repeatable workflow is:

  1. Request both hostnames rather than the server IP.
  2. Run sudo nginx -T and find the block that listens on the tested port.
  3. Confirm it contains server_name example.com www.example.com;.
  4. Confirm its effective root is /var/www/example and that the index file is there.
  5. Check that no more-specific location points the homepage at the fallback directory.
  6. Run sudo nginx -t and resolve every error.
  7. Run sudo nginx -s reload.
  8. Repeat the hostname-specific curl requests and only then investigate caching.

This sequence separates the three decisions that are often confused: which server block receives the request, which filesystem root that block uses, and whether the edited configuration has actually been applied.

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

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.