Cu nginx, încerc să configurez două site-uri web statice pe același domeniu. Prima fiind la exemplu.com
, iar celălalt fiind o mică aplicație React la exemplu.com/haiku
. Cum se poate face acest lucru?
Am probleme pentru care foaia de stil și fișierele javascript pentru exemplu.com/haiku
sunt solicitate de la principal exemplu.com
. Deoarece toate URI-urile de resurse de pagină încep cu o bară oblică (de ex /static/style.css
), nginx le procesează ca aparținând exemplu.com
mai degrabă decât să le obțină de la /haiku
.
Ambele site-uri web ocupă directoare separate pe server. exemplu.com
este la /srv/http/domain
, și exemplu.com/haiku
este la /srv/http/haiku
Iată partea relevantă a blocului serverului meu nginx:
rădăcină /srv/http;
Locație / {
rădăcină /srv/http/domain;
}
locație /haiku {
alias /srv/http/haiku;
}
Mi-am făcut cercetările asupra acestor module nginx și înțeleg de ce acest lucru nu funcționează acum. Navigare către example.com/haiku/index.html
servește pagina, dar referințele acesteia la /static/css/style.css
și /static/js/main.js
se lovesc de /
bloc de locație. Am nevoie de un fel de rescriere internă care să dureze /static/css/style.css
si schimba-l in /haiku/static/css/style.css
, unde se află fișierul. Nu găsesc întrebări similare pe Google sau SE.
Știu că pot rezolva cu ușurință acest lucru prin obținerea unui alt domeniu. Știu că pot configura și un subdomeniu, dar vreau în mod special să știu dacă acest lucru se poate face prin imbricarea unui site web static la cererea unui alt site web fără configurare DNS.
De asemenea, nu vreau să schimb doar URI-urile pentru fișierele css și js, deoarece vreau să pot implementa această mică aplicație React pe orice rădăcină de bloc de server.