Inicio › Herramientas para desarrolladores › Generador de Virtual Host de Apache

Generador de Virtual Host de Apache

Elige el tipo de sitio, introduce tu dominio y obtén un archivo VirtualHost de Apache completo y comentado. Gestiona HTTPS con Let's Encrypt o tu propio certificado, redirecciones de HTTP a HTTPS y de www, PHP-FPM, proxy inverso con WebSockets, enrutamiento de aplicaciones de una sola página, compresión, caché y cabeceras de seguridad, además de los comandos exactos para servidores Debian/Ubuntu o basados en RHEL.

Última actualización:

Sitio
HTTPS
Rendimiento y seguridad
Redirecciones

Configuración generada

    Publicidad
    Publicidad

    Cómo usar Generador de Virtual Host de Apache

    1. Elige el tipo de sitio: archivos estáticos, PHP mediante PHP-FPM, un proxy inverso hacia un servidor de aplicaciones o una aplicación de una sola página.
    2. Introduce el ServerName y los alias, la raíz de documentos o la URL del backend, y elige cómo tratar www.
    3. Configura HTTPS con Let's Encrypt o tu propio certificado, y elige la redirección de HTTP a HTTPS, HTTP/2 y HSTS.
    4. Elige las opciones de rendimiento y seguridad y añade las redirecciones personalizadas que necesites.
    5. Copia la configuración o los comandos de instalación, guarda el archivo, ejecuta la prueba de configuración y recarga Apache.

    Cómo elige Apache un virtual host

    En cada solicitud, Apache mira primero la dirección IP y el puerto, y luego el nombre de host:

    1. Todos los bloques <VirtualHost> cuya dirección y puerto coinciden con la conexión (por ejemplo, *:443) son candidatos.
    2. Entre ellos, gana el primero cuyo ServerName o ServerAlias coincide con la cabecera Host de la solicitud.
    3. Si ningún nombre coincide, se usa como predeterminado el primer candidato según el orden de carga. Por eso el 000-default.conf de serie suele responder a nombres desconocidos en Debian y Ubuntu.

    Módulos que usa la configuración generada

    MóduloNecesario paraDirectivas clave
    mod_sslHTTPSSSLEngine, SSLCertificateFile, SSLProtocol
    mod_http2HTTP/2Protocols h2 http/1.1
    mod_proxy + mod_proxy_httpProxy inversoProxyPass, ProxyPassReverse, ProxyPreserveHost
    mod_proxy_fcgiPHP-FPMSetHandler "proxy:unix:…|fcgi://localhost"
    mod_headersCabeceras de seguridad, HSTS, X-Forwarded-ProtoHeader always set, RequestHeader set
    mod_deflate + mod_filterCompresiónAddOutputFilterByType DEFLATE
    mod_expiresCaché del navegadorExpiresActive, ExpiresByType
    mod_dirAplicaciones de una sola páginaFallbackResource /index.html
    mod_aliasRedireccionesRedirect, RedirectMatch

    Lista de comprobación para resolver problemas

    • Ejecuta siempre la prueba de configuración (apache2ctl configtest o apachectl configtest) y recarga en lugar de reiniciar para no cortar las conexiones abiertas.
    • 403 Forbidden: el usuario de Apache (www-data o apache) necesita permiso de lectura en los archivos y de ejecución en cada carpeta superior, y el bloque <Directory> debe contener Require all granted. En sistemas con SELinux, revisa también el contexto de los archivos con ls -Z.
    • 503 Service Unavailable detrás de un proxy: el backend no está en ejecución o escucha en otra dirección. Pruébalo en el servidor con curl -I http://127.0.0.1:3000/ y lee el registro de errores del sitio.
    • Se descarga el código PHP en lugar de ejecutarse: falta el manejador de PHP; comprueba la ruta del socket de PHP-FPM con ls /run/php/ y que mod_proxy_fcgi esté activado.
    • Bucle de redirección detrás de Cloudflare o un balanceador de carga: puede que el proxy se comunique con Apache por HTTP, así que la redirección de HTTP a HTTPS vuelve a activarse. Usa la redirección HTTPS del propio proxy o TLS completo de extremo a extremo.

    Preguntas frecuentes

    ¿Dónde se guardan los archivos de virtual host de Apache?

    En Debian y Ubuntu, guarda el archivo en /etc/apache2/sites-available/ con extensión .conf y actívalo con sudo a2ensite nombre.conf. En RHEL, Rocky, AlmaLinux y Fedora, colócalo en /etc/httpd/conf.d/ con extensión .conf; todos los archivos .conf de esa carpeta se cargan automáticamente. Después, recarga Apache.

    ¿Cómo redirijo HTTP a HTTPS en Apache?

    Crea un VirtualHost en el puerto 80 para tu dominio que solo contenga Redirect permanent / https://example.com/ y coloca el sitio real en el VirtualHost del puerto 443. Redirect conserva el resto de la ruta, así que /about va a https://example.com/about.

    ¿Cómo configuro Apache como proxy inverso?

    Activa mod_proxy y mod_proxy_http, y luego añade ProxyPass / http://127.0.0.1:3000/ y ProxyPassReverse / http://127.0.0.1:3000/ dentro del VirtualHost. ProxyPreserveHost On transmite el nombre de host original, y RequestHeader set X-Forwarded-Proto https indica a la aplicación que el visitante usó HTTPS.

    ¿Cómo uso PHP-FPM con Apache?

    Activa mod_proxy y mod_proxy_fcgi y envía los archivos .php al socket de PHP-FPM con un bloque FilesMatch que contenga SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost". Así Apache puede usar el MPM event y HTTP/2, que no funcionan con mod_php.

    ¿Por qué apachectl configtest falla con un error de certificado SSL?

    SSLCertificateFile y SSLCertificateKeyFile deben apuntar a archivos que existan cuando Apache se inicia. Obtén primero el certificado, por ejemplo con sudo certbot certonly --apache -d example.com, o desactiva temporalmente HTTPS en el generador, despliega, obtén el certificado y luego activa HTTPS.

    ¿Cuál es la diferencia entre ServerName y ServerAlias?

    ServerName es el nombre de host principal del virtual host y se usa cuando Apache construye URL que apuntan a sí mismo. ServerAlias enumera nombres adicionales, como www.example.com, a los que responde el mismo VirtualHost. Apache elige el virtual host cuyo ServerName o ServerAlias coincide con la cabecera Host de la solicitud.

    ¿Se sube algo cuando uso este generador?

    No. La configuración se crea en tu navegador, y tus ajustes solo se recuerdan en el almacenamiento local de este navegador.

    ¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

    Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

    Herramientas relacionadas

    Ver todas las de Generadores de código →