Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The reliable pattern is one server { ... } block per website, stored in its own file and loaded by the active nginx.conf. Ubuntu and Debian packages normally use /etc/nginx/sites-available/ for source files and symlinks in /etc/nginx/sites-enabled/ to turn sites on. Installations following the upstream layout commonly load *.conf files from /etc/nginx/conf.d/.
After creating a file, confirm that the running configuration includes it, give the site the correct server_name and listen directives, run sudo nginx -t, and only then reload Nginx. You do not need to edit the main file for every new site once its include pattern is in place.
How separate Nginx files work
Nginx virtual hosting is built from server blocks. A request is matched to a server block using the listening address and port, then the request’s host name. Each block can define a different document root, index file, proxy target, or set of location rules.
For HTTP traffic, the normal hierarchy is:
events { ... }
http {
server {
location / { ... }
}
}
events,http,mail, andstreamare top-level contexts.- HTTP
serverblocks belong insidehttp { ... }. locationblocks belong inside aserverblock and control URI-specific behavior.includeis what makes a separate file part of the effective configuration. A file sitting in a directory is inactive if no loaded configuration includes it.
Splitting files is therefore an organizational and operational choice, not a different configuration language. Nginx ultimately parses one merged configuration, regardless of how many files supplied it. You can keep a site’s complete server block in one file, while shared settings remain in the main file or in deliberately included feature files. This separation lets you review, disable, or restore one site without searching through an unrelated monolithic configuration.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
The same principle applies whether the site serves static files, forwards requests to an application, or has several location blocks. The file boundary does not alter request processing; only the directives in the merged configuration do.
Choose the layout used by your installation
Use the convention already present on the server instead of creating a second, confusing layout. Ubuntu and Debian packages generally provide the Apache-style pair of directories. Builds using the upstream convention commonly use conf.d.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →| Layout | Where a site’s source file goes | How it becomes active | Best use | Disabling one site |
|---|---|---|---|---|
| Ubuntu/Debian package | /etc/nginx/sites-available/<name> |
A symlink in /etc/nginx/sites-enabled/ points to the source file |
Servers installed from the distribution’s Nginx package | Remove the individual enablement symlink; keep the source file |
| Upstream-style | /etc/nginx/conf.d/<name>.conf |
An include such as /etc/nginx/conf.d/*.conf loads matching files |
Installations whose main file includes conf.d |
Remove the file from the included pattern or change the include arrangement |
Ubuntu’s documentation describes sites-available and sites-enabled as the configuration directories for multiple websites. Debian’s packaging convention uses enabled entries as symlinks to files in sites-available, while conf.d/*.conf is an additional configuration directory. Neither directory has special meaning to Nginx itself; the installed include directives give them meaning.
The practical difference is enablement. In the symlink layout, the source file can remain archived in sites-available while its link is removed from sites-enabled. In a wildcard layout, any matching file is read, so an old backup whose name ends in .conf can unintentionally become active. Keep names and include patterns predictable, and inspect the final configuration after changing either arrangement.
Inspect the active configuration before adding a site
Before creating files, determine which configuration file and include paths the running binary uses. This avoids the common mistake of editing a directory that is not loaded.
- Display the build options and compiled configuration path:
nginx -V
- Open the reported main configuration file, commonly
/etc/nginx/nginx.conf. - Inside the
http { ... }section, look for an include such asinclude /etc/nginx/sites-enabled/*;orinclude /etc/nginx/conf.d/*.conf;. - If neither directory is included, add one include in the
httpcontext or use an existing included directory. Do not put an HTTPserverblock at top level or insideevents.
Do not assume that every distribution uses the same paths. The effective file shown by nginx -V and its actual include lines are authoritative for that installation. If the service was started with a custom prefix or configuration path, a command run without the same options may test a different file than the service uses. Confirm the path first, then make changes in that configuration tree.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteAn include should be placed where the included directives are legal. An HTTP server file belongs under an http-context include. A file included at top level cannot turn an HTTP server block into valid syntax, and putting the include inside events is likewise incorrect.
Set up a site with the Ubuntu/Debian layout
1. Create the document root
For this example, the site’s files live at /srv/example.test/html.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
sudo mkdir -p /srv/example.test/html
Place the site’s content in that directory, including an index.html file if the configuration will use index index.html;. The root path in the server block must be the directory that actually contains the requested files; changing the filename or directory without changing root will produce missing-file responses.
2. Create one server block file
Create /etc/nginx/sites-available/example.test with a complete HTTP server block:
server {
listen 80;
listen [::]:80;
server_name example.test www.example.test;
root /srv/example.test/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
The two listen lines cover IPv4 and IPv6 on port 80. The two names in server_name are aliases for this site. root selects the document directory, and try_files serves an existing file or directory and returns HTTP 404 when neither exists.
Give every site the names that clients will actually send. A hostname omitted from server_name can fall through to another block even though the file and content are correct. If a site has several aliases, list them in the same server block rather than duplicating the entire configuration unnecessarily.
3. Enable the file with a symlink
sudo ln -s /etc/nginx/sites-available/example.test /etc/nginx/sites-enabled/example.test
The source remains in sites-available; the symlink is the enablement switch. For a second site, create a second source file and a second symlink rather than adding another block to the first file. If a link already exists, inspect it before replacing it so that you do not silently point an existing site at the wrong source.
4. Decide what to do with the packaged default site
A newly installed package may enable a default site. If it is allowed to remain enabled, requests whose host name does not match another server block can be served by that default. After checking the consequences for any existing service, remove only its enablement symlink when it should no longer answer requests:
sudo rm /etc/nginx/sites-enabled/default
Do not delete a source file merely to disable it; keeping the file in sites-available makes later re-enablement straightforward. Removing the default is not automatically required: it is appropriate only when you have confirmed that unmatched requests should not use the package’s sample site.
5. Validate and reload
sudo nginx -t
sudo systemctl reload nginx
nginx -t parses the merged configuration and reports syntax errors before any change is applied. Reloading asks the running service to adopt the validated configuration without stopping it. If the test fails, fix the reported file and line, run the test again, and do not reload the failed configuration.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Run the test after each logical edit, not only after all sites have been added. That keeps the error close to the change that caused it and prevents a later file from obscuring the original problem. A successful syntax test confirms that Nginx can parse the configuration; it does not by itself prove that DNS, host matching, document paths, or application responses are correct.
Set up sites with conf.d
1. Confirm or add the include
In the http { ... } section of the active main file, use an include pattern such as:
Recommended Free Tools
include /etc/nginx/conf.d/*.conf;
The path must match the directory actually used by the installation. An include placed outside http cannot load HTTP server blocks correctly. F5 NGINX documentation describes this approach as splitting configuration into feature-specific files in /etc/nginx/conf.d and referencing them from the main file.
2. Create a file whose name matches the pattern
Save the same server block as /etc/nginx/conf.d/example.test.conf:
server {
listen 80;
listen [::]:80;
server_name example.test www.example.test;
root /srv/example.test/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
For another domain, create another .conf file with its own server_name and root. The include pattern loads both files into the same HTTP configuration. Keep temporary notes, editor swap files, and backups outside the wildcard’s matching names so they cannot be parsed as live configuration.
3. Test and reload
sudo nginx -t
sudo systemctl reload nginx
Use the same validation order as with the symlink layout. A file that does not end in .conf is not matched by the example pattern and will not be active. If a file appears to be ignored, check both its suffix and the exact include path before changing the server block itself.
Add a second and third site safely
Once the include mechanism works, repeat the per-site workflow. For example, a second site can use /srv/second.test/html and a file named second.test under sites-available, or second.test.conf under conf.d.
- Create the second document root and upload its content.
- Create a separate
serverblock file. - Set
server_nameto the names that should reach that site. - Use a distinct
rootor other site-specific handling. - Enable it with a symlink when using
sites-enabled, or ensure its filename matches theconf.dinclude. - Run
sudo nginx -t, then reload.
Several domains can share port 80 or port 443 when their server_name values distinguish them. Some Ubuntu examples use a different port for each sample site, but that is not a requirement for ordinary name-based virtual hosting. Follow the complete syntax already used by the installed package and verify the resulting behavior. The important pairing is a listening address and port that receive the traffic plus names that distinguish the intended site.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
When adding many sites, repeat the same order rather than editing several files at once: create the content directory, write the block, enable it, test, reload, and then check that hostname. This makes it clear which site is responsible if a later request reaches the wrong root.
How Nginx chooses the site for a request
When a request arrives, Nginx first considers the address and port selected by listen. Among server blocks listening there, it compares the request’s host name with server_name. A name that matches the requested host routes the request to that site’s block and its location rules.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteThis means a correct file alone is not enough:
- The domain’s DNS records must point to the server’s address.
- The browser or client must send a host name that matches
server_name. - The site must listen on the address and port receiving the request.
- No unintended
default_serveror enabled default site should take unmatched requests.
For local testing before public DNS is changed, use a client-side hosts entry or an HTTP request with the intended Host header, while remembering that this tests routing rather than public DNS. Test each hostname separately; loading one domain and seeing its expected page does not prove that aliases or the other site’s block are selected correctly.
An unmatched request can therefore look like a content problem when it is actually a name-selection problem. First verify the address, port, and Host header, then inspect the selected block’s root and location directives.
Diagnose a site that is not being served
The file appears to be ignored
- Check that the file is in a directory included by the active main configuration.
- Confirm the filename matches the include wildcard, especially the
.confsuffix used by manyconf.dsetups. - Run
sudo nginx -Tto print the complete merged configuration and search for the server block. If it is absent, the include path or filename is wrong.
nginx -T is particularly useful when several configuration trees exist or when a service uses a custom main file. It shows what Nginx is actually loading, rather than what you expect it to load from a directory listing.
The default site answers instead
- Verify that the requested host exactly matches one of the names in
server_name. - Check DNS and the address being tested.
- Look for an enabled default site or another server block marked
default_server. - Remove the default enablement symlink only after confirming that no other application depends on it.
Nginx refuses to reload
- Run
sudo nginx -tand read the file path and line number in the error. - Check braces, semicolons, directive spelling, and whether the block is inside
http. - Check for duplicate or conflicting definitions introduced by an accidental second include.
- Repeat the test after every edit; never use a reload as a substitute for validation.
The test passes but the response is still wrong
- Use
sudo nginx -Tto inspect ordering and confirm which blocks are actually loaded. - Check the request’s Host header and DNS target.
- Inspect Nginx service and error logs for permission failures, missing files, or upstream errors.
- Confirm that the requested path exists under the configured
rootand that thelocationrule is the one matching the URI.
If only one alias fails, compare that hostname with the exact spelling in server_name. If every site fails after a change, inspect the include and top-level context first; a misplaced include can affect the entire HTTP configuration.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Operational practices that prevent configuration mistakes
Keep one concern per file
Use a predictable filename based on the domain or service. Keep site-specific server blocks together, while leaving shared top-level settings in the main configuration or a deliberately included feature file. This makes review and rollback easier than a single large file containing unrelated sites.
Use the enablement mechanism as a switch
With sites-available/sites-enabled, creating or removing one symlink changes one site’s state without deleting its source. With conf.d, ensure the include pattern is narrow and predictable so an old backup file is not accidentally parsed.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Validate the merged result, not just the edited file
Nginx evaluates all included files together. A new file can conflict with a directive elsewhere even when its own text looks valid. nginx -t checks syntax; nginx -T helps inspect the complete result when order, duplicates, or an unexpected default block is involved.
Make changes reversible
Keep a copy of the previous working file or use version control outside the Nginx directory. Make one logical change, test it, reload, and verify the intended host before proceeding to the next site.
Do not mix conventions casually
Using both layouts is possible only when the main configuration deliberately includes both, but it makes enablement and troubleshooting harder. Prefer the package convention already installed, document any additional include, and make sure each site’s active state is obvious from its path or symlink.
Minimal checklist for every new site
- Document root exists and contains the expected content.
- Exactly one dedicated
serverblock file has been created. - The file is in an actually included directory, or has an enablement symlink.
server_namecontains every hostname intended for that site.listencovers the address and port receiving traffic.- No unwanted default site or conflicting server block is intercepting the request.
sudo nginx -tsucceeds.- Nginx is reloaded only after a successful test.
- DNS and the request Host header point to the intended server.
sudo nginx -Tcan show the block when activation is uncertain.
Frequently Asked Questions
Do I have to edit nginx.conf every time I add a site?
No. Add an include such as include /etc/nginx/sites-enabled/*; or include /etc/nginx/conf.d/*.conf; in the http context once. New files that match that include are then loaded after you validate and reload Nginx.
What is the difference between sites-available and sites-enabled?
sites-available stores source files. A symlink with the same site name in sites-enabled activates one of those files. Removing the symlink disables the site while leaving its source available for later use.
Can multiple domains share port 80 or 443?
Yes. Multiple server blocks can listen on the same port when their server_name values distinguish the domains. The address and port must receive the request, and the Host name must match the intended block.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Why does Nginx keep showing the default site?
The request may not match the configured server_name, DNS may point elsewhere, or an enabled default block may be handling unmatched requests. Check the Host header, DNS target, active default configuration, and the merged output from sudo nginx -T.
How can I prove that a separate file is loaded?
Run sudo nginx -T and search its complete output for the server block. If it is missing, check the active main configuration, the include path, and—under conf.d—the filename’s .conf suffix.
Is a file in sites-available active automatically?
No. In the Ubuntu/Debian layout it becomes active only when a symlink points to it from sites-enabled and that directory is included by the main configuration.
What should I do when nginx -t fails?
Do not reload. Read the reported path and line number, correct syntax, context, directive spelling, or duplicate definitions, then run sudo nginx -t again until it succeeds.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →The Bottom Line
Create one complete server block per site, place it in the directory your active nginx.conf actually includes, and use the installed package’s enablement convention. Set matching server_name and listen values, verify DNS and default-site behavior, run sudo nginx -t, inspect with sudo nginx -T when needed, and reload only after a successful test.
Quick Recap
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.

