mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
bbb1a08ed3
Co-authored-by: locadex-agent[bot] <217277504+locadex-agent[bot]@users.noreply.github.com>
161 lines
6.2 KiB
Plaintext
161 lines
6.2 KiB
Plaintext
---
|
||
title: "Proxy inverse"
|
||
description: "Configurer un proxy inverse personnalisé pour diffuser votre documentation."
|
||
keywords: ["configuration de proxy inverse", "nginx", "routage du proxy", "transmission des en-têtes"]
|
||
---
|
||
|
||
<Note>
|
||
Les configurations de proxy inverse ne sont prises en charge que pour les [offres Custom](https://mintlify.com/pricing?ref=reverse-proxy).
|
||
</Note>
|
||
|
||
Pour diffuser votre documentation via un proxy inverse personnalisé, vous devez configurer des règles de routage, des stratégies de mise en cache et la transmission des en-têtes.
|
||
|
||
Lorsque vous mettez en place un proxy inverse, surveillez les problèmes potentiels liés à la vérification du domain, à l’émission des certificats SSL, aux parcours d’authentification, aux performances et au suivi Analytics.
|
||
|
||
<div id="routing-configuration">
|
||
## Configuration du routage
|
||
</div>
|
||
|
||
Redirigez ces chemins vers votre sous-domaine Mintlify avec les politiques de mise en cache indiquées :
|
||
|
||
| Chemin | Destination | Mise en cache |
|
||
|------|-------------|---------|
|
||
| `/.well-known/acme-challenge/*` | `<your-subdomain>.mintlify.app` | Pas de cache |
|
||
| `/.well-known/vercel/*` | `<your-subdomain>.mintlify.app` | Pas de cache |
|
||
| `/mintlify-assets/_next/static/*` | `<your-subdomain>.mintlify.app` | Cache activé |
|
||
| `/_mintlify/*` | `<your-subdomain>.mintlify.app` | Pas de cache |
|
||
| `/*` | `<your-subdomain>.mintlify.app` | Pas de cache |
|
||
| `/` | `<your-subdomain>.mintlify.app` | Pas de cache |
|
||
|
||
<div id="required-header-configuration">
|
||
## Configuration d’en-têtes requise
|
||
</div>
|
||
|
||
Configurez votre reverse proxy avec les en-têtes suivants :
|
||
|
||
- **Origin** : contient le sous-domaine cible `<your-subdomain>.mintlify.app`
|
||
- **X-Forwarded-For** : conserve les informations d’adresse IP du client
|
||
- **X-Forwarded-Proto** : conserve le protocole d’origine (HTTP/HTTPS)
|
||
- **X-Real-IP** : transmet la véritable adresse IP du client
|
||
- **User-Agent** : transmet l’agent utilisateur
|
||
|
||
<Warning>
|
||
Assurez-vous que l’en-tête `Host` n’est pas transmis
|
||
</Warning>
|
||
|
||
<div id="example-nginx-configuration">
|
||
## Exemple de configuration Nginx
|
||
</div>
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name <your-domain>.com;
|
||
|
||
# Chemins de vérification Let's Encrypt
|
||
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;
|
||
|
||
# Désactiver la mise en cache pour les chemins de vérification
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
}
|
||
|
||
# Chemins de vérification Vercel
|
||
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;
|
||
|
||
# Désactiver la mise en cache pour les chemins de vérification
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
}
|
||
|
||
# Ressources statiques avec mise en cache
|
||
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;
|
||
|
||
# Activer la mise en cache pour les ressources statiques
|
||
add_header Cache-Control "public, max-age=86400";
|
||
}
|
||
|
||
# Chemins spécifiques à Mintlify
|
||
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;
|
||
|
||
# Désactiver la mise en cache pour les chemins Mintlify
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
}
|
||
|
||
# Chemin racine
|
||
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;
|
||
|
||
# Désactiver la mise en cache pour le contenu dynamique
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
}
|
||
|
||
# Tous les autres chemins de documentation
|
||
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;
|
||
|
||
# Désactiver la mise en cache pour le contenu dynamique
|
||
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
||
}
|
||
}
|
||
```
|
||
|
||
|
||
<div id="troubleshooting">
|
||
## Résolution des problèmes
|
||
</div>
|
||
|
||
<div id="404-error">
|
||
### Erreur 404
|
||
</div>
|
||
|
||
**Symptômes :** La documentation se charge, mais certaines fonctionnalités ne fonctionnent pas. Les appels à l’API échouent.
|
||
|
||
**Cause :** L’en-tête `Host` est transmis ou l’en-tête `Origin` est manquant.
|
||
|
||
**Solution :**
|
||
|
||
- Supprimer le transfert de l’en-tête `Host`
|
||
- Définir l’en-tête `Origin` sur `<your-subdomain>.mintlify.app`
|
||
|
||
<div id="performance-issues">
|
||
### Problèmes de performances
|
||
</div>
|
||
|
||
**Symptômes** : temps de chargement lents et décalages de mise en page.
|
||
|
||
**Cause** : configuration de la mise en cache incorrecte.
|
||
|
||
**Solution** : activez la mise en cache uniquement pour les chemins `/mintlify-assets/_next/static/*`. |