Portál AbcLinuxu, 4. května 2025 12:46
Zdravím přítomné guru, odhodlal jsem se nasadit jako reverzní proxy nginx před Apache. Funguje bezvadně. Jenže to je pouze základní nastavení a já bych chtěl využít pokročilejší věci jako například obsluha požadavků pro statický obsah právě přes nginx.
Pro představu adresářová struktura:
/var/sites > tady jsou jednotlivé domény /var/sites/domena.cz/www > obsah pro www.domena.cz a současně pro domena.cz /var/sites/domena.cz/test > obsah pro subdoménu test.domena.cz
Příslušná pravidla pro mod_rewrite mám napsána a Apache funguje bezvadně dle představ. A já bych rád nasměroval nginx tak, aby statické soubory (.gif, .png, .jpeg, .css, .js, .txt, atd) obsloužil on a nezatěžoval tím Apache, ten se bude starat o vše ostatní. Nginx je pro mne velkou neznámou a popravdě moc zajímavých tutorialů jsem k němu nenašel, možná jsem špatně hledal?
v nginx.conf mám:
server_name ~^(www\.)?(?<domena>.+)$ location ~* \.(gif|png|jpeg|css|js|txt)$ { root /var/sites/$domena/www; }
Tohle by relativně mohlo fungovat pro www.domena.cz, ale jak to napsat pro subdomény? Věděl by nějaký guru, který je v nginxu mnohem dále než já? :) Kéž by to bylo tak "snadné" jako s mod_rewrite.
Řešení dotazu:
server { server_name "~^(?<subdomain>[a-zA-Z0-9\-]+)\.(?<domain>[a-zA-Z0-9\-]{2,}\.\w{2,4})$"; ... location ~* \.(xml|css|js|ico|gif|png|jpg|jpeg|bmp|zip|rar|gz|gzip|doc|pdf|avi|mp3|mpg|txt)$ { root /var/www/sites/$domain/$subdomain; } ... } server { server_name ~^(?<domain>.+)$; ... location ~* \.(xml|css|js|ico|gif|png|jpg|jpeg|bmp|zip|rar|gz|gzip|doc|pdf|avi|mp3|mpg|txt)$ { root /var/www/sites/$domain/www; } ... }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.