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 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchiTechGuides 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.
Run Ghost as a localhost application and let Apache serve as the public reverse proxy. The dependable order is: point DNS at the VPS, install Ghost in production mode, keep Ghost bound to localhost, proxy it through Apache, terminate TLS at Apache, and set Ghost’s canonical URL to the final HTTPS address. Ghost-CLI officially configures NGINX, so an Apache deployment requires a manually written VirtualHost that preserves the host and forwarding headers Ghost needs.
What the finished architecture looks like
A production Ghost site has three distinct layers:
- DNS: your domain resolves to the VPS public address.
- Apache: listens publicly on ports 80 and 443, handles TLS, and proxies requests.
- Ghost: runs as a local service, normally listening on
127.0.0.1:2368, where it is not directly reachable from the internet.
Browsers never need to connect to Ghost’s port directly. Apache receives the request, keeps the original hostname, tells Ghost whether the original request was HTTP or HTTPS, and forwards the response back to the browser. This is the manual Apache equivalent of the reverse-proxy arrangement Ghost expects. Ghost’s documentation describes the application as designed to have a reverse proxy in front of it.
| Layer | Public or private | Job |
|---|---|---|
| DNS records | Public | Map the domain to the VPS IPv4 address and, if used, IPv6 address. |
| Apache on :80 | Public | Accept cleartext requests and redirect them to HTTPS. |
| Apache on :443 | Public | Present the certificate and proxy encrypted-site requests. |
| Ghost on 127.0.0.1:2368 | Private | Serve the publication and admin application locally. |
| MySQL | Private | Store Ghost content and configuration. |
There is no authoritative performance benchmark in the available Ghost or Apache material for this exact arrangement, so do not choose CPU, RAM, or request-rate targets from a supposed Apache-versus-NGINX benchmark. Use the current Ghost installation checks and your VPS provider’s sizing guidance.
Before you install: VPS, DNS, and firewall prerequisites
Start with a clean production server
Ghost’s hosting guidance supports installation on almost any VPS provider and recommends a fresh Ubuntu production environment with SSL. Use a current Ubuntu image, log in with an administrative account, and create a separate non-root deployment user. Ghost-CLI creates and uses a low-privilege ghost user as part of its supported production workflow; do not run the Ghost process as root.
#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: 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.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Install the Node.js release and MySQL version that the current Ghost-CLI checks accept. Compatibility changes over time, so follow the version checks printed by the installer rather than pinning an old runtime from an unrelated tutorial. Apache can already be installed, or you can install it before creating the site:
sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2
Create DNS records first
Create an A record for the hostname you will make canonical, such as example.com, pointing to the VPS public IPv4 address. If the VPS has a working public IPv6 address and you intend to serve IPv6, add an AAAA record as well. Add a www record only when you plan to redirect it to the canonical hostname.
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 →Repair Windows errors before they cause bigger problemsFix Now →| Record | Example value | Use it when |
|---|---|---|
A |
example.com → VPS IPv4 |
Always, for IPv4 access. |
AAAA |
example.com → VPS IPv6 |
Only when IPv6 is configured end to end. |
A or CNAME for www |
www.example.com |
Only if you will accept and redirect the www hostname. |
Wait until public DNS resolves to the VPS before requesting a Let’s Encrypt certificate. ACME validation must be able to reach the domain over the public internet; a local hosts-file override is not sufficient.
Open both HTTP and HTTPS
Permit TCP ports 80 and 443 in the VPS firewall and in any provider-level firewall. If you use UFW, the equivalent rules are:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status
Do not expose Ghost’s application port publicly. If your provider firewall has a broad rule allowing port 2368, remove it and keep Ghost bound to localhost.
Install Ghost in production mode
Prepare the site directory
Use a directory owned by the deployment user. The following example uses /var/www/ghost; substitute your own path consistently.
Recommended Free Tools
sudo npm install -g ghost-cli@latest
mkdir -p /var/www/ghost
sudo chown "$USER":"$USER" /var/www/ghost
cd /var/www/ghost
ghost install
The installer asks for the publication URL and database details. Enter the final HTTPS URL, for example https://example.com, even if TLS is not active yet. Ghost requires a production URL, and later changes take effect after a Ghost restart.
Handle Ghost-CLI’s NGINX prompts deliberately
Ghost-CLI is Ghost’s supported production installation tool. Its normal flow configures MySQL, systemd, NGINX, and optional SSL. Because this deployment uses Apache, treat the NGINX and NGINX-managed SSL stages as an adaptation point:
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
- Allow Ghost-CLI to complete the application, database, systemd, and permission work it supports.
- Do not leave two public proxies competing for ports 80 and 443. Stop or disable NGINX before Apache takes those ports.
- If the installer offers to generate NGINX configuration or obtain SSL, skip that stage when possible. If it creates files, do not copy them into Apache verbatim; create the Apache VirtualHosts shown below.
- Keep Ghost listening on localhost. The public web server is Apache, not the Ghost process.
When prompted for a site URL, database name, database user, and password, use the values appropriate to this site and retain them securely. The exact prompts vary by Ghost version, so follow the checks and error messages from the installed Ghost-CLI release.
Verify Ghost locally before involving Apache
Test the application from the VPS itself. This separates Ghost and database problems from DNS, firewall, and proxy problems.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
cd /var/www/ghost
ghost status
curl -I http://127.0.0.1:2368
ghost status should show the service state for the installed version, and the local curl command should return an HTTP response from Ghost. Do not interpret a command that merely runs without an error as proof that Ghost is healthy; inspect the response and the Ghost logs if the service is stopped or the connection is refused.
If Ghost is bound to a different local port, use that port in every Apache ProxyPass directive. The common production port is 2368, but the installed configuration is authoritative.
Enable Apache’s reverse-proxy modules
On Ubuntu, enable proxying, header manipulation, rewriting, and TLS support, then reload Apache:
sudo a2enmod proxy proxy_http headers rewrite ssl
sudo systemctl reload apache2
proxy_http forwards HTTP requests to Ghost, headers sets the forwarding metadata Ghost uses, rewrite handles HTTP-to-HTTPS redirects, and ssl enables the TLS VirtualHost. Enabling a module does not replace a configuration test; run apachectl configtest after every substantial edit.
Create Apache’s HTTP VirtualHost
Write the site configuration
Create /etc/apache2/sites-available/ghost.conf. Replace both hostnames with the names you actually configured in DNS.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http://127.0.0.1:2368/
RequestHeader set X-Forwarded-Proto "http"
RequestHeader set X-Forwarded-Port "80"
RequestHeader set X-Real-IP "%{REMOTE_ADDR}s"
ErrorLog ${APACHE_LOG_DIR}/ghost-error.log
CustomLog ${APACHE_LOG_DIR}/ghost-access.log combined
</VirtualHost>
ProxyPreserveHost On passes the requested hostname to Ghost instead of replacing it with the upstream address. ProxyPassReverse rewrites response redirect headers that point back to the local application. The forwarding headers preserve the protocol, port, and client address information that the application cannot otherwise see behind Apache.
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.
The X-Forwarded-Proto value must describe the connection that the browser made to Apache. This HTTP-only VirtualHost therefore sends http. When Apache terminates TLS, the HTTPS VirtualHost must send https; sending the wrong value is a common cause of an endless HTTPS redirect loop.
Enable and test the site
sudo a2ensite ghost.conf
sudo apachectl configtest
sudo systemctl reload apache2
If the default Apache page appears, disable the default site or correct the hostname selection:
Free tools Windows power users keep installed
One-click scans. No signup required.
sudo a2dissite 000-default.conf
sudo apachectl configtest
sudo systemctl reload apache2
At this stage, HTTP may still be cleartext. The certificate and the final HTTPS redirect are added next.
Obtain and install HTTPS with Certbot
Install the Apache plugin
sudo apt update
sudo apt install certbot python3-certbot-apache
Request a certificate for every hostname you intend to serve:
sudo certbot --apache -d example.com -d www.example.com
Omit www.example.com from both DNS and the Certbot command when you do not use that hostname. Certbot’s Apache plugin finds the matching VirtualHost and adds TLS directives. Live certificate files are kept under /etc/letsencrypt/live/<domain>/.
Certbot may create or modify an HTTPS VirtualHost and may add an HTTP redirect. Review the resulting file rather than assuming the generated proxy block contains every Ghost-specific directive.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCheck the HTTPS proxy block
The TLS VirtualHost must retain the proxy settings and include these headers:
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http://127.0.0.1:2368/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Real-IP "%{REMOTE_ADDR}s"
Keep the certificate directives that Certbot inserted. If the HTTP VirtualHost still serves content instead of redirecting, add a simple redirect there or accept the redirect generated by Certbot, but ensure there is one clear path from HTTP to the canonical HTTPS hostname.
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.
Ghost recommends SSL for production because credentials sent without HTTPS travel in plaintext. Certificate issuance is not complete until DNS points at this VPS and ports 80 or 443 are reachable as required by the selected ACME challenge.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Check renewal
systemctl list-timers | grep certbot
sudo certbot renew --dry-run
The dry run tests the renewal workflow without replacing the live certificate. Keep the timer enabled and investigate any failed renewal before the certificate’s expiration window.
Set Ghost’s canonical URL after TLS is ready
From the Ghost directory, set the exact public URL and restart the service:
cd /var/www/ghost
ghost config url https://example.com
ghost restart
Use one canonical hostname. If you accept www.example.com, redirect it consistently to the chosen primary domain rather than allowing two separate public addresses. Ghost’s URL controls generated links, redirects, admin access, and other absolute URLs. A wrong value can produce access-denied responses, redirects to localhost, or a loop between HTTP and HTTPS.
After changing the URL, verify that Apache’s ServerName, DNS, certificate names, and Ghost’s configured URL all agree. A mismatch in any one of those layers can look like an application failure even when Ghost itself is running normally.
Validate the complete deployment from outside the VPS
Run these checks from a separate machine or network, not only from the server:
curl -I http://example.com
curl -I https://example.com
curl -I https://example.com/ghost/
openssl s_client -connect example.com:443 -servername example.com </dev/null
| Check | Expected result | If it fails |
|---|---|---|
| HTTP homepage | One redirect to the canonical HTTPS URL. | Inspect the port-80 VirtualHost and redirect rules. |
| HTTPS homepage | Successful TLS negotiation and a Ghost response. | Check DNS, port 443, certificate coverage, and the HTTPS proxy block. |
/ghost/ |
Ghost admin login page. | Check the Ghost service, canonical URL, and Apache error log. |
openssl s_client |
The certificate names the requested hostname and chains correctly. | Review Certbot’s certificate and the selected TLS VirtualHost. |
| Apache logs | Requests appear in the site’s access log and proxy errors are absent. | Check ghost-error.log, ghost-access.log, and Ghost logs. |
Also load the homepage in a browser, sign in to /ghost/, and test an upload. An apparently working homepage does not prove that admin requests, redirects, or media handling are correct.
Troubleshoot the failures that matter most
Infinite redirect between HTTP and HTTPS
Inspect the HTTPS VirtualHost first. It must send RequestHeader set X-Forwarded-Proto "https" and RequestHeader set X-Forwarded-Port "443". Keep ProxyPreserveHost On. If Apache tells Ghost that a TLS request was HTTP, Ghost may keep redirecting to HTTPS because it never sees the secure scheme it expects.
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.
Then check ghost config url. The configured URL must already be https:// with the same canonical hostname used in the browser. Restart Ghost after correcting it.
The browser shows Apache’s default page
Usually the request is selecting the default site rather than ghost.conf, or DNS points elsewhere. Confirm the requested hostname resolves to this VPS, run sudo a2ensite ghost.conf, disable 000-default.conf if it is still winning, and reload Apache after a successful config test.
502 Bad Gateway or connection refused
Check ghost status and curl -I http://127.0.0.1:2368 on the VPS. If the local request fails, fix Ghost, Node.js compatibility, MySQL, permissions, or the systemd service before changing Apache. If the local request works, compare the port in the Apache ProxyPass line with Ghost’s actual listening port and inspect the Apache error log.
Ghost generates links to localhost:2368
Set the canonical URL again and restart Ghost. Then confirm that Apache preserves the original host. A missing or incorrect ProxyPreserveHost On directive can cause the upstream application to see the loopback address instead of the public domain.
Certificate issuance fails
Verify that every requested name resolves publicly to this VPS, that port 80 or 443 is open through both firewalls, and that Apache answers for the name in question. Do not request a certificate for a www name that has no DNS record or that you do not intend to serve.
Uploads or admin requests are rejected
Confirm that /ghost/ reaches Ghost over HTTPS, that Apache is proxying the entire path rather than only the homepage, and that the Ghost service user can write to the directories required by the installed version. Read both Apache and Ghost logs for the specific request instead of changing unrelated proxy directives.
Operate the site safely after launch
- Keep Ghost, Ghost-CLI, Node.js, MySQL, Ubuntu, Apache, and Certbot within the compatibility ranges documented for the currently installed Ghost release.
- Run
ghost statusafter maintenance and useghost restartafter changing Ghost configuration. - Run
sudo apachectl configtestbefore every Apache reload. - Monitor certificate renewal with the Certbot timer and periodic dry runs.
- Back up the Ghost content directory and MySQL database before upgrades or major configuration changes.
- Keep port 2368 private and limit administrative access to the VPS itself or an appropriate secure network path.
- Review Apache access and error logs when redirects, uploads, or admin sessions behave unexpectedly.
Apache is a valid manual integration choice, but it is not the proxy configuration Ghost-CLI generates automatically. Treat the VirtualHost as infrastructure you own: document the canonical hostname, upstream port, TLS certificate paths, forwarding headers, and renewal procedure so another administrator can recover the site without guessing.
Quick Recap
Deployment checklist
- Use a current Ubuntu VPS and a non-root deployment user.
- Install the Node.js and MySQL versions accepted by the current Ghost-CLI checks.
- Create
Aand optionalAAAArecords, and awwwrecord only when needed. - Open TCP 80 and 443 in provider and VPS firewalls.
- Install Ghost with
ghost installand enter the final HTTPS URL. - Keep Ghost bound to localhost and confirm it with
ghost statusand localcurl. - Enable Apache’s proxy, headers, rewrite, and SSL modules.
- Create and enable the HTTP VirtualHost with host preservation and forwarding headers.
- Obtain the certificate with Certbot’s Apache plugin.
- Check the HTTPS VirtualHost for
X-Forwarded-Proto "https"andX-Forwarded-Port "443". - Set
ghost config url https://example.comand restart Ghost. - Test redirects, the homepage,
/ghost/, certificate names, logs, and renewal.
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.

