Het hosten van je Document360 kennisbank in een submap op Nginx, zoals example.com/docs, vereist het configureren van proxy- en herschrijfregels op je server. Dit artikel behandelt het inschakelen van de benodigde locatieblokken, het routeren van UI- en API-paden, het genereren van sitemaps en het afhandelen van URL-omleiding om dubbele inhoud in zoekmachines te voorkomen.
Voor meer informatie over Nginx zelf, zie de Nginx-documentatie.
Voordat je begint
- Subfolderhosting werkt alleen wanneer zowel het Submap-pad (bijvoorbeeld
/docsof/help) als het Site API-pad (bijvoorbeeld/apiof/docs-api) in Document360 zijn gedefinieerd. Na het instellen van deze waarden configureer je de bijbehorendelocationblokken in Nginx om zowel UI- als API-verkeer te proxyen. - Vervang het voorbeelddomein in dit artikel door je eigen door Document360 geleverde domein of aangepaste domein. Bijvoorbeeld,
example.document360.iovertegenwoordigt je domein, enexample.document360.io/docsvertegenwoordigt je submappad.
Hoe configureer je een submappad in Nginx
- Voeg het volgende locatieblok toe aan je Nginx-configuratiebestand (
/etc/nginx/default):
location /docs {
proxy_pass https://example.document360.io/docs;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
}
- Herstart de Nginx-webserver. Op Linux gebruik je:
sudo systemctl restart nginx
Hoe gebruik je een aangepast submappad
Je kunt je kennisbasis hosten op een ander pad dan /docs, zoals /help of /support. Voeg bij het instellen van een aangepast pad ook de talen toe die aan elke werkruimte zijn gekoppeld en start vervolgens de server opnieuw.
Het onderstaande voorbeeld brengt het door Document360 geleverde domein, example.document360.iowerkruimte /v1/, submappad /help/en Hebreeuwse taal code /he in kaart — vervang deze door je eigen waarden.
location /help {
proxy_pass https://example.document360.io/docs;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
sub_filter "v1/docs/" "v1/help/";
sub_filter "docs/he/" "/help/he";
sub_filter "/docs/" "/help/";
sub_filter_once off;
}
Het verwijderen van de workspace slug uit interne links
Om workspace-slugs van interne links op het Nginx reverse proxy-niveau te verwijderen, gebruik een sub_filter regel:
sub_filter "/Version_slug/docs/" "/help/";
Dit herschrijft werkruimte-specifieke paden voordat ze aan lezers worden gepresenteerd. Gebruik deze aanpak alleen als je sitestructuur workspace-agnostische URL's vereist.
Waarom proxy_set_header Accept-Encoding "" is vereist
Bij hosting in een aangepaste submap gebruikt sub_filter Nginx vaak interne URL's /docs zoals naar /help. Standaard kan de upstream-server (Document360) gzip-gecomprimeerde HTML teruggeven, en Nginx kan geen regels toepassen sub_filter op gecomprimeerde antwoorden. Dit zorgt ervoor dat interne links niet worden herschreven, widgets op de homepage steeds naar verwijzen en /docscategoriekaarten of navigatieroutes kapot gaan.
Om dit op te lossen, schakel compressie uit van de upstream-server:
proxy_set_header Accept-Encoding "";
Dit dwingt Document360 om ongecomprimeerde HTML terug te geven, laat sub_filter regels correct uitvoeren en zorgt ervoor dat paden zoals die /docs/en/ worden herschreven naar /help/en/. Deze instelling is altijd nodig wanneer sub_filter deze wordt gebruikt.
Hoe het Site API-pad te configureren
Als je je kennisbank in een submap host, moet je ook een Site API-pad definiëren en een bijbehorend location blok toevoegen in Nginx, om te zorgen dat API-verzoeken correct worden gerouteerd en om redirect-lussen of kapotte API-aanroepen te voorkomen.
Het onderstaande voorbeeld gebruikt /api als het Site API-pad:
location /api {
proxy_pass https://example.document360.io/api;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
sub_filter_types *;
sub_filter "v1/docs/" "v1/help/";
sub_filter "docs/he/" "/help/he";
sub_filter "/docs/" "/help/";
sub_filter_once off;
}
Vervang /api en /docs-api in het voorbeeld door de exacte waarden die zijn geconfigureerd onder het Site API-pad in het Document360-portaal. Het API-pad dat in het portaal is geconfigureerd en het Nginx-locatieblok moeten exact overeenkomen.
Zodra je beide locatieblokken hebt toegevoegd, start je Nginx opnieuw op:
sudo systemctl restart nginx
Gebruik sub_filter_types *; alleen bij het herschrijven van HTML- of API-antwoorden die niet-HTML-inhoud kunnen teruggeven — vermijd dit tenzij het herschrijven van URL's daadwerkelijk nodig is.
Wanneer te gebruiken sub_filter in het API-locatieblok
Het toevoegen sub_filter van regels aan het API-locatieblok is niet altijd noodzakelijk. Gebruik het alleen wanneer je UI-pad wordt herschreven (bijvoorbeeld /docs → /help) of wanneer API-antwoorden embedded /docs paden bevatten die herschreven moeten worden. Als je project blijft gebruiken /docs als UI-pad, voeg sub_filter dan geen regels toe aan het API-blok.
Als je domein al gebruikt /api voor een andere applicatie, werk dan het Site API-pad in het Document360-portaal bij naar een andere waarde, zoals /docs-api, en gebruik hetzelfde pad in je Nginx-configuratie.
Hoe je het keuzemenu werkruimtes inschakelt
Om navigatie in de keuzelijst van de werkruimte in te schakelen wanneer je hostt in een aangepaste subdirectory, voeg je een codeblok toe voor elke werkruimte in je project.
Het onderstaande voorbeeld behandelt twee werkruimtes, v1 en v2, met Document360-domein example.document360.io, submappad /help/, en Hebreeuwse taal /he — vervang deze door je eigen waarden.
location /v2/help {
proxy_pass https://example.document360.io/v2/docs;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
sub_filter "v2/docs/" "v2/help/";
sub_filter "docs/he/" "/help/he";
sub_filter "/docs/" "/help/";
sub_filter_once off;
}
location /v1/help {
proxy_pass https://example.document360.io/v1/docs;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
sub_filter "v1/docs/" "v1/help/";
sub_filter "docs/he/" "/help/he";
sub_filter "/docs/" "/help/";
sub_filter_once off;
}
location = /v2/docs {
return 301 /v2/help;
}
location = /v1/docs {
return 301 /v1/help;
}
Om lezers te laten navigeren tussen openbare werkruimtes via het keuzemenu, voeg je een locatieblok toe voor elke beschikbare werkruimte.
Begin Nginx opnieuw zodra je het geconfigureerd hebt:
sudo systemctl restart nginx
De standaard startpagina van een kennisbanksite verschijnt bijvoorbeeld in de rootdirectory.example.document360.io Als je project een werkruimte- en taalspecifieke startpagina heeft, volgt de slug na de rootmap bijvoorbeeld het formaat./<workspace_name>/<language_code>example.document360.io/v2/he
Hoe je sitemapgeneratie instelt
Het sitemap-prefix blijft hetzelfde, behalve voor de taalcode (en, fr, de, enzovoort).
location /sitemap.xml.en {
proxy_pass https://example.document360.io/sitemap.xml.en;
proxy_set_header Host example.document360.io;
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 "requested-by" "proxy";
proxy_ssl_server_name on;
proxy_set_header Accept-Encoding "";
sub_filter_types text/xml;
sub_filter "https://www.example.document360.io/docs/" "https://www.example.document360.io/help/";
sub_filter_once off;
}
Hoe de canonieke URL in te stellen
Wanneer je je kennisbank in een submap host, configureer dan een canonieke URL zodat zoekmachines je aangepaste domein en submappad indexeren in plaats van het standaarddomein *.document360.io . Dit voorkomt dubbele indexering en verbetert de SEO-prestaties.
- Navigeer naar > Knowledge base site > Custom domain > Subfolder hosting.
- Voer bijvoorbeeld de volledige submap URL in.
https://example.com/help - Klik op Opslaan.
Eenmaal geconfigureerd, beschouwen zoekmachines de submap URL als de primaire bron voor indexering.
Wat gebeurt er daarna
Zodra Nginx is geconfigureerd, staat je knowledge base-site live in je eigen submap. De bestaande Document360-URL blijft ook verzoeken bedienen – bijvoorbeeld, zowel example.document360.io als example.com/docs verwijzen naar je kennisbanksite. Dit veroorzaakt dubbele inhoud in zoekmachines.
Om dit te voorkomen, schakel de schakelaar Subdomeintoegang Beperken in onder () > Knowledge base site > Custom domain > Subfolder hosting. Zorg ervoor dat een canoniek domein eerst is geconfigureerd - zodra het is ingeschakeld, wordt je Document360-subdomein automatisch doorgestuurd naar je canonieke domein.
Handige links
- NGINX Docs: NGINX en NGINX Plus configureren als webserver
- DigitalOcean: Inzicht in Nginx-server- en locatieblokselectie-algoritmen
Best practices
- Voeg altijd toe
proxy_set_header Accept-Encoding "";aan elk locatieblok metsub_filter, anders zijn je herschrijfregels niet van toepassing op gecomprimeerde reacties. - Houd het Site API-pad identiek tussen het Document360-portaal en je Nginx-configuratie — een mismatch veroorzaakt kapotte API-aanroepen.
sub_filterVoeg regels toe aan het API-locatieblok alleen wanneer je UI-pad wordt herschreven of wanneer API-antwoorden embedded/docspaden bevatten.- Configureer een canonieke URL voordat je toegang tot subdomein beperken inschakelt, om omleidingsproblemen tijdens de installatie te voorkomen.
FAQ
Waarom is de startpagina van mijn site niet beschikbaar?
Nadat je de startpagina van je project in de sitebuilder hebt ontworpen, zorg ervoor dat je deze publiceert. Bevestig dat de startpagina live is en toegankelijk voor het beoogde publiek.
Waarom verwijzen widgets en categorieënlinks op mijn startpagina naar /docs in plaats van /help?
Dit gebeurt wanneer Nginx sub_filter herschrijven niet wordt toegepast, meestal omdat de upstream-server gzip-gecomprimeerde HTML terugstuurt, die sub_filter niet kan verwerken. Als gevolg daarvan worden /docs-paden binnen de HTML niet herschreven. Los dit op door proxy_set_header Accept-Encoding "") toe te voegen; naar het relevante locatieblok, dat ongecomprimeerde HTML forceert, sub_filter regels laat uitvoeren en ervoor zorgt dat interne links naar het juiste submappad leiden.