Choosing a web server
Run your sites on OpenLiteSpeed, Nginx/OpenResty or Apache instead of the default — what changes, what doesn't, and how to switch a site safely.
By default NovaPanel serves every site with Caddy, which passes PHP to that site's own PHP-FPM pool. That is a fast, modern, and entirely sufficient setup for most sites. If you need something specific — .htaccess support for a site migrated from cPanel, LiteSpeed caching, or plain nginx behaviour your app expects — you can run a site on a different web server instead.
Choosing a web server is a Pro feature (included on Developer). On Community every site runs on the default, which is the same web server every NovaPanel site has always used.
What actually changes — and what doesn't
This is the important part, because it is less than people expect. Caddy stays in front of everything. It keeps handling:
- SSL certificates — issuance and renewal are unchanged
- The firewall (WAF) — your rules and modes apply exactly as before
- Access logs, bandwidth accounting and redirects
- Ports 80 and 443 — the alternative web server listens only on the server's own loopback interface and is never reachable from the internet directly
What changes is what runs behind Caddy and actually executes your PHP. Your files, your PHP version, your database and your file permissions are untouched, and you can move a site back at any time.
The choices
- Caddy + PHP-FPM — the default. Nothing extra installed, nothing extra to go wrong. Stay here unless you have a reason not to.
- OpenLiteSpeed — adds LSCache and reads
.htaccess. It runs PHP itself using its ownlsphpbuild rather than your site's pool, so check the PHP-version note below. - Nginx / OpenResty — standard nginx behaviour and configuration, plus Lua. Useful when an application's documentation assumes nginx. It serves PHP through your site's existing pool, so your PHP version and file permissions are unchanged.
- Apache — the familiar
.htaccessbehaviour of a cPanel or shared-hosting box. Also serves PHP through your site's existing pool.
Nginx and OpenResty are one entry, not two: OpenResty is nginx with LuaJIT and extra modules bundled, using the same configuration syntax.
Installing one
In the admin panel, open Web Server (under Server). Each web server is a tile showing whether it is installed. Click Install on the one you want.
The install takes a few minutes and runs in the background — you can leave the page. Installing changes nothing on its own: no site moves, and every site is served exactly as it was until you explicitly switch one. If the install fails you get a notification saying so, and again nothing has changed.
Setting the default for new sites
Clicking a tile sets which web server newly created sites use. Existing sites are never moved by this — changing the default is not a migration.
Moving an existing site
Under Per-site web server on the same page, turn on Switching, then pick a web server from the dropdown next to the site.
The switch is verified before it takes effect: NovaPanel starts the new web server for that site, checks the site is actually being served, and only then points Caddy at it. If the check fails, the site stays exactly where it was. If a site's web server later stops responding, NovaPanel moves that site back to the default automatically and notifies its owner — your site does not stay down waiting for someone to notice.
Only PHP sites can use an alternative web server — a static site is served by Caddy directly and has nothing to hand off. Sites using a web template can switch: the template's PHP handler is pointed at the chosen web server and the rest of your template is left exactly as you wrote it. A template that has no PHP handler at all cannot, and says so next to the site.
Things worth knowing before you switch
Subdomains follow the site
Move example.com to Apache and shop.example.com moves with it. A subdomain shares its parent site's files, PHP version and system user, so it belongs on the same web server — .htaccess handling and caching apply to a subdomain exactly as they do to the site.
They share the site's connection rather than getting one of their own, so adding subdomains costs nothing and there is no limit to how many a site can have. Caddy is still the edge for each of them individually: every subdomain keeps its own SSL certificate and its own settings.
Two things stay where they are. A static subdomain of a PHP site continues to be served directly by Caddy, because there is nothing to hand to a web server that only matters for PHP. And a subdomain always moves with its parent — you cannot put a subdomain on a different web server from its site.
OpenLiteSpeed and PHP versions
OpenLiteSpeed runs PHP through its own lsphp packages rather than your site's PHP-FPM pool. These are separate installs: adding PHP 8.4 for the server does not make 8.4 available to OpenLiteSpeed sites. An admin installs the matching build under PHP Manager, where each OpenLiteSpeed version has its own Configure button for its settings and extensions.
A PHP version OpenLiteSpeed has no build of cannot be selected for a site running on it, and the site's PHP page says which versions are available and where to add the rest. Nginx/OpenResty and Apache have neither caveat: they use the site's existing pool, so the PHP version, its settings and its extensions are exactly what they were.
Everything else works the same on either. A site's PHP Settings page, its extension list and its version picker all follow whichever interpreter actually serves it, and the page names the one it is editing.
Staging sites follow their source
A staging copy inherits the web server of the site it was cloned from, so a staging test rehearses the stack production actually runs. If that cannot be applied for any reason the staging site is still created and usable on the default web server.
Moving back
Set the site's web server back to Caddy + PHP-FPM. It takes effect immediately and there is nothing to clean up — the site returns to exactly the configuration it had before. Moving back is always safe, and is the first thing to try if a site behaves oddly after a switch.
Troubleshooting
- The option says it needs a Pro plan. Choosing a web server requires a Pro or Developer licence — see Upgrading your licence. If you have just upgraded, the panel picks up new entitlements within the hour, or immediately if you restart it.
- A site's dropdown is greyed out. It is either not a PHP site, or it uses a web template with no PHP handler to point at another web server; the reason is shown under the site's name.
.htaccessworks on the site but not on a subdomain. Check whether that subdomain is static: a static subdomain is served directly by Caddy, which does not read.htaccess. A PHP subdomain follows its site onto the same web server.- A site moved back to the default on its own. Its web server stopped responding and NovaPanel restored it to keep the site up. The owner is notified, and the panel log says which check failed. Switching it again is safe once the cause is dealt with.
- The install button did nothing. Installs run in the background and take several minutes. The tile updates when it finishes; a failure raises a notification.
Next steps
- Migrating from cPanel — where Apache and
.htaccessare most often what you want. - Web Application Firewall — unchanged whichever web server a site uses.