Apache VirtualHost Generator — vhost Config with HTTPS

Get a complete Apache virtual host config for your domain: a static site, WordPress, PHP-FPM or a reverse proxy to a Node or Python app. Tick HTTPS with Let’s Encrypt, www redirects, HTTP/2, compression, caching and security headers — and get the a2enmod commands it needs.

Runs in your browserUpdated
VirtualHost
Enable commands

Your data never leaves your computer. All processing happens 100% locally in your browser.

How to use the Apache VirtualHost Generator

  1. Pick the scenario: static site, WordPress (pretty permalinks and .htaccess support), PHP-FPM or a reverse proxy to an app on a port.
  2. Enter your domain, the document root or upstream address and how www should be handled.
  3. Tick the extras — HTTPS, HTTP/2, compression, caching, security headers, WebSockets.
  4. Save the config in /etc/apache2/sites-available/ and run the enable commands — they include the modules it needs.

VirtualHost vs .htaccess

A VirtualHost lives in the server config and is read once when Apache starts, so it is faster and can do things .htaccess can’t, like listening on ports, SSL certificates and proxying. Use .htaccess only when you can’t edit the server config (shared hosting) — the .htaccess Generator covers that case.

Modules the config uses

OptionModule
HTTPS redirect, www redirect, WordPressmod_rewrite
HTTPSmod_ssl
HTTP/2mod_http2 (needs the event or worker MPM, which PHP-FPM setups use)
Reverse proxy / WebSocketsmod_proxy, mod_proxy_http, mod_proxy_wstunnel
PHP-FPMmod_proxy_fcgi
Compression, caching, headersmod_deflate, mod_expires, mod_headers

Check the syntax with sudo apachectl configtest before reloading. Prefer Nginx or Caddy? See the Nginx Config Generator and Caddyfile Generator.

Also searched as: apache vhost config, apache reverse proxy config, apache virtual host example, apache ssl virtualhost, apache wordpress config, apache2 site config, apache https redirect.

Tools that pair well with the Apache VirtualHost Generator

  • YAML Validator — Paste a Docker Compose file, Kubernetes manifest, GitHub Actions workflow or any YAML to pinpoint errors, catch common pitfalls and get a cleanly formatted version.
  • Kubernetes YAML Generator — Fill in your app’s name, image and port and get production-ready Kubernetes YAML: a Deployment with probes, resource limits and a hardened security context, plus the Service, Ingress with TLS, ConfigMap, Secret and HorizontalPodAutoscaler you tick — in one file ready for kubectl apply.
  • systemd Service Generator — Run your app as a proper Linux service that starts on boot and restarts when it crashes.
  • GitLab CI Generator — Pick your stack and get a working .gitlab-ci.yml: install with caching, lint and test jobs, a build with artifacts, a Docker image pushed to the GitLab registry, or a GitLab Pages deploy — with rules that run pipelines for merge requests and your default branch without duplicates.

Frequently asked questions

Where do Apache virtual host files go?
On Debian and Ubuntu: /etc/apache2/sites-available/DOMAIN.conf, enabled with sudo a2ensite DOMAIN. On RHEL, Rocky and Alma: /etc/httpd/conf.d/DOMAIN.conf.
How do I redirect HTTP to HTTPS in Apache?
Tick HTTPS: the port 80 VirtualHost redirects every request to https:// with a 301, and the port 443 VirtualHost serves the site with your certificate.
How do I use Apache as a reverse proxy?
Choose Reverse proxy and enter the app address. The config uses ProxyPass and ProxyPassReverse, keeps the Host header and sends X-Forwarded-Proto so the app knows the request was HTTPS.
Why does WordPress need AllowOverride All?
WordPress writes its permalink rules to .htaccess. AllowOverride All lets Apache read that file; without it, every page except the home page returns 404.
Can I install Apache VirtualHost Generator as a web app and use it offline?
Yes. Apache VirtualHost Generator is an installable web app (PWA) — installed from your browser, not downloaded from an app store. Click Install app at the top of this page in Chrome or Edge (Windows, macOS, Linux, ChromeOS) or on Android, use Share → Add to Home Screen on iPhone and iPad, or File → Add to Dock in Safari 17+ on a Mac. It then opens in its own window with its own icon, and because it runs entirely in your browser it keeps working offline. Firefox on desktop can’t install web apps. How installing works.

Related tools