Contact me on Telegram Message

← All articles

FastPanel Placeholder Page Instead of Your Website: Causes and Fixes

The website is added to FastPanel, the files are uploaded, the domain points to the server, but instead of the website you see a page with the FastPanel logo. It's one of the most common problems for people setting up a server with this panel for the first time.

FastPanel placeholder page instead of a website

Below are specific situations: when the placeholder appears only over HTTPS, only on www, right after creating the website or only through Cloudflare. If your case doesn't match any of them or not everyone sees the placeholder, the checklist at the end of the article will help.


Where the placeholder comes from

In FastPanel, websites sit behind the Nginx web server. When a request comes in, it looks at which domain is in the address and searches for a website with that name. If it finds one, it shows it. If not, the request goes to the default website — and in FastPanel that's the placeholder.

So the placeholder almost always means one thing: Nginx couldn't find your website for this request. The cause may be the protocol, the domain name, the IP address or settings that haven't been applied yet.


Placeholder only over HTTPS

Symptom: the website opens at http://, but https:// shows the placeholder. Often the browser warns about an insecure connection first, and the certificate shows the name parking and the organization FASTPANEL.

Cause: no SSL certificate has been issued for the website. FastPanel doesn't set up HTTPS for a website until it has a certificate, so HTTPS requests go to the placeholder with the panel's self-signed certificate. You can check which certificate the server returns with this command:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | grep subject

Fix: issue a Let's Encrypt certificate for the website in the panel's SSL certificates section. If it isn't issued, sort out the error with the article "Let's Encrypt Certificate Not Issued".


Placeholder through Cloudflare

Symptom: the domain is on Cloudflare with proxying enabled, and the website shows the placeholder, even though everything works when you access the server directly over HTTP.

Cause: Cloudflare connects to the server over HTTPS — for example, if the SSL mode is set to Full or the "Always Use HTTPS" rule is on. But the server has no certificate for the website, and the request goes to the placeholder, just like in the previous section.

Fix: issue a certificate on the server. If Let's Encrypt fails the check through the Cloudflare proxy, switch the DNS record to "DNS only" while issuing the certificate. After that, turn proxying back on and set the Cloudflare SSL mode to "Full (strict)".

⚠️ Important: Flexible mode looks like a quick fix, but if the server redirects from HTTP to HTTPS, the website gets stuck in an endless redirect loop. It's better to set up the certificate on the server right away.


Placeholder only on www

Symptom: example.com opens fine, but www.example.com shows the placeholder (or the other way around).

Cause: for Nginx, www.example.com and example.com are two different names. If the second one isn't in the website settings, requests with it are treated as someone else's.

Fix: in the website settings in FastPanel, add the missing address to the list of aliases. Then reissue the SSL certificate so it covers both addresses. And to give the website one main address, set up a redirect from one version to the other.


Placeholder right after creating the website

Symptom: you've created the website and uploaded your files, but the website address still opens the page with the FastPanel logo.

Cause: there are two options. The first is a default index.html left in the website folder, which the panel may have created along with the website. If your website runs through index.php, the server may show index.html instead — for example, Apache looks for index.html first by default. The second is that the new Nginx settings weren't applied because of a configuration error.

Fix: first open an address like https://example.com/index.php in the browser. If it shows your website, the cause is the extra index.html — delete it from the website folder using the panel's file manager, FTP or SSH.

If this address shows the placeholder too, check the Nginx configuration. This command shows whether it has errors, in which file and on which line:

sudo nginx -t

If the configuration has an error, Nginx doesn't accept the new settings and keeps running with the old ones, which don't include your website yet. The error may not even be in your website but in any other configuration file. Fix the line it points to and apply the settings:

sudo systemctl reload nginx

Instead of this command, you can save the website settings in the panel again — it will reload Nginx itself.


Placeholder when opening the IP address

Symptom: you open the server's IP address in the browser instead of the domain and see the placeholder.

Cause: this is normal. One server can host many websites, and from the IP address alone Nginx doesn't know which one to show.

Fix: if the domain doesn't point to the server yet but you need to check the website now, add the domain to the hosts file on your computer or send a request with the right domain using curl:

curl -I --resolve example.com:80:203.0.113.10 http://example.com

Replace 203.0.113.10 with your server's IP address — this address is reserved for examples in documentation. If the response has code 200 and your website's headers, everything is set up correctly on the server and all that's left is to update DNS.


If not everyone sees the placeholder or the cause is unclear

Sometimes the website opens for you but the client sees the placeholder, or it works on a computer but not on a phone. Then check, in order:

To check what the server itself returns, without DNS or cache getting in the way, use the same curl command with --resolve — for HTTPS, specify port 443:

curl -I --resolve example.com:443:203.0.113.10 https://example.com

If the server returns your website but users see the placeholder, the problem is DNS or cache. If the server returns the placeholder too, the problem is in the website settings in the panel.


Summary

The FastPanel placeholder appears when Nginx can't find a website for the request. Most often there's no SSL certificate, www isn't added, Cloudflare is set up wrong or there's an extra index.html in the website folder. If not everyone sees the placeholder, check DNS and the AAAA record, and use curl with --resolve to find out what the server itself returns.

🛠️ If your website on FastPanel still won't open, message me — I'll sort out the server settings.

Published

← All articles