mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
83476f17a8
Co-authored-by: locadex-agent[bot] <217277504+locadex-agent[bot]@users.noreply.github.com>
189 lines
7.4 KiB
Plaintext
189 lines
7.4 KiB
Plaintext
---
|
|
title: "Proxy inverso"
|
|
description: "Configura un proxy inverso personalizado para publicar tu documentación."
|
|
keywords: ["reverse proxy configuration","nginx","proxy routing","header forwarding"]
|
|
---
|
|
|
|
<Note>
|
|
Las configuraciones de proxy inverso solo están disponibles en los [planes Enterprise](https://mintlify.com/pricing?ref=reverse-proxy).
|
|
</Note>
|
|
|
|
Para publicar tu documentación a través de un proxy inverso personalizado, debes configurar reglas de enrutamiento, políticas de caché y reenvío de encabezados.
|
|
|
|
Al implementar un proxy inverso, supervisa posibles problemas con la verificación del domain, el aprovisionamiento de certificados SSL, los flujos de Autenticación, el rendimiento y el seguimiento de Analytics.
|
|
|
|
<div id="routing-configuration">
|
|
## Configuración de enrutamiento
|
|
</div>
|
|
|
|
Encamina estas rutas a tu subdomain de Mintlify con las políticas de caché especificadas:
|
|
|
|
| Ruta | Destino | Caché |
|
|
| --------------------------------- | ------------------------------- | ---------------- |
|
|
| `/.well-known/acme-challenge/*` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/.well-known/vercel/*` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/.well-known/skills/*` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/skill.md` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/mintlify-assets/_next/static/*` | `<your-subdomain>.mintlify.app` | Caché habilitada |
|
|
| `/_mintlify/*` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/*` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
| `/` | `<your-subdomain>.mintlify.app` | Sin caché |
|
|
|
|
<div id="required-header-configuration">
|
|
## Configuración obligatoria de encabezados
|
|
</div>
|
|
|
|
Configura tu proxy inverso con estos requisitos de encabezados:
|
|
|
|
- **Origin**: Contiene el subdomain de destino `<your-subdomain>.mintlify.app`
|
|
- **X-Forwarded-For**: Conserva la información de la IP del cliente
|
|
- **X-Forwarded-Proto**: Conserva el protocolo original (HTTP/HTTPS)
|
|
- **X-Real-IP**: Reenvía la dirección IP real del cliente
|
|
- **User-Agent**: Reenvía el agente de usuario
|
|
|
|
<Warning>
|
|
Asegúrate de no reenviar el encabezado `Host`
|
|
</Warning>
|
|
|
|
<div id="example-nginx-configuration">
|
|
## Ejemplo de configuración de Nginx
|
|
</div>
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name <your-domain>.com;
|
|
|
|
# Let's Encrypt verification paths
|
|
location ~ ^/\.well-known/acme-challenge/ {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Deshabilitar caché para rutas de verificación
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# Vercel verification paths
|
|
location ~ ^/\.well-known/vercel/ {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Deshabilitar caché para rutas de verificación
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# AI skills paths
|
|
location ^~ /.well-known/skills/ {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Deshabilitar caché para rutas de verificación
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# Skill manifest
|
|
location = /skill.md {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Disable caching for skill manifest
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# Static assets with caching
|
|
location ~ ^/mintlify-assets/_next/static/ {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Enable caching for static assets
|
|
add_header Cache-Control "public, max-age=86400";
|
|
}
|
|
|
|
# Mintlify-specific paths
|
|
location ~ ^/_mintlify/ {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Disable caching for Mintlify paths
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# Root path
|
|
location = / {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Disable caching for dynamic content
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
|
|
# All other documentation paths
|
|
location / {
|
|
proxy_pass https://<your-subdomain>.mintlify.app;
|
|
proxy_set_header Origin <your-subdomain>.mintlify.app;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header User-Agent $http_user_agent;
|
|
|
|
# Disable caching for dynamic content
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
<div id="troubleshooting">
|
|
## Resolución de problemas
|
|
</div>
|
|
|
|
<div id="404-error">
|
|
### Error 404
|
|
</div>
|
|
|
|
**Síntomas**: La documentación carga, pero las funciones no se ejecutan. Las llamadas a la API fallan.
|
|
|
|
**Causa**: Se está reenviando el encabezado `Host` o falta el encabezado `Origin`.
|
|
|
|
**Solución**:
|
|
|
|
- Elimina el reenvío del encabezado `Host`
|
|
- Configura el encabezado `Origin` en `<your-subdomain>.mintlify.app`
|
|
|
|
<div id="performance-issues">
|
|
### Problemas de rendimiento
|
|
</div>
|
|
|
|
**Síntomas**: Cargas de página lentas y desplazamientos de diseño.
|
|
|
|
**Causa**: Configuración de caché incorrecta.
|
|
|
|
**Solución**: Habilita la caché solo para las rutas `/mintlify-assets/_next/static/*`. |