Portál AbcLinuxu, 7. listopadu 2025 13:20
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:
Pokud by to někoho zajímalo, tak část z mého nginx.conf:
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.