Nginx és a The Bug Genie telepítése alkönyvtárba

 ( asrob | 2013. október 14., hétfő - 18:36 )

Szeretném Nginx alatt beüzemelni a tárgyban említett szoftvert, de egy kis problémám akadt az Nginx rewrite rule-okkal. Tehát adott egy Nginx 1.4.3 RHEL 6 alatt és egy Drupal 7.23 amely a /srv/www/domainem alatt érhető el, az alábbi konfig alapján. http://wiki.nginx.org/Drupal (Természetesen a root path nem ugyanez, hanem /srv/www/domainem)

Na de itt jön a csavar, szeretném telepíteni a TBG-t ami a következő url alatt lenne elérhető, http://domainem/thebuggenie/.
Ehhez is van természetesen konfig fájl, http://issues.thebuggenie.com/wiki/TheBugGenie%3AHowTo%3ANginxConfiguration , a kérdés tehát, hogyan tudnám "egybegyúrni" a két konfig fájlt, hogy ha megnyitom a http://domainem urlt akkor a Drupal, ha pedig a http://domainem/thebuggenie/ urlt akkor a The Bug Genie jöjjön be?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

location / { try_files $uri @rewrite; }

^ elé ezt kéne írni:

location ~ ^/thebuggenie/(.*\.)(png|gif|jpg|jpeg|js|css|ico)$ {

alias /eleresi/ut/thebuggenie/$1$2;

}

location ~ ^/thebuggenie/.* {

include fastcgi_params;
fastcgi_pass unix:/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /eleresi/ut/thebuggenie/index.php;

}

Köszi, de valami nem kerek így sem. Itt a hibaüzenet:

The webpage at http://asrob.eu/thebuggenie/login has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
Learn more about this problem.
Error code: ERR_TOO_MANY_REDIRECTS

Itt pedig a jelenlegi konfig: http://p.ngx.cc/dd

Így sem tökéletes, a domainemre 403-as hibaüzenetet dob, a domainem/thebuggenie/ -re pedig ugyanúgy "redirect loop"-ot kapok.

Semmilyen más szabály nincs rá?

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

Nincsen, errotan által megadott konfigurációt használtam direkt, hogy ne kavarjon be más. Így kaptam a fenti üzeneteket amelyeket leírtam, természetesen azóta visszatettem a régit, hogy elérhető legyen a weboldal. Sajnos ötletem sincs, hogy hogyan tudnám megfelelően konfigurálni már, kerestem "multiple webapps nginx" kulcsszavakra de a más által jónak vélt beállítások sem működtek nálam.

Úgy néz ki, hogy ez segített (kódrészlet):

	location ~ ^/thebuggenie/(.*\.)(png|gif|jpg|jpeg|js|css|ico)$ {
		alias /srv/www/thebuggenie/thebuggenie/$1$2;
	}

	location ~ ^/thebuggenie/.+\.php {
		include fastcgi_params;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /srv/www/thebuggenie/thebuggenie/index.php;
		fastcgi_intercept_errors on;
	}
	 
	location ~ /thebuggenie/(?.*) {
		set $suburi $1;
		try_files $uri $uri/ /thebuggenie/index.php?url=$suburi&$args;
	}

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

szerintem a try_files-es location-ba kene megy egy alias is, mert igy a drupal doc-rootban keres fajlokat. persze ha a drupalba van "beszorva" a tbg, akkor nemgond.
csak mivel az uriban mar bennvan a path elso resze, ezert a tbg-t tartalmazo konyvtarat kell megadni (ha jol latom akkor /srv/www/thebuggenie) vagy rewritevel le kell szedni.

rewrite  ^/thebuggenie/(.*)$  /$1  break;
alias /srv/www/thebuggenie/thebuggenie/;
try_files $uri $uri/ /index.php?url=$suburi&$args;

meg talan e felso locationba ossze lehet vonni a ket regexp ()-t:

location ~ ^/thebuggenie/(.*\.(png|gif|jpg|jpeg|js|css|ico))$ {
		alias /srv/www/thebuggenie/thebuggenie/$1;
	}

megsporoltal egy $2-t :D

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Megmondom oszinten, en a try_files -t kerulom, mint a tuzet. Az nginx onerobol is kepes tudni, hogy valami mappa vagy fajl, az osszes tobbi dolog meg if/rewrite parossal megoldhato. A try_files hatalmas problemaja ugyanis, hogy belenyul a location mukodesebe valahogy, es rettento nehez belole ertelmes dolgot kihuzni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

pedig pont hogy a try_files valtja ki azt hogy mindenfele bonyolult rewritevel kelljen varazsolni: ha az url egy letezo fajl, akkor kiszolgalja, ha nem akkor atirja a kerest a parameternek megfeleloen.

a doksi mutat is egy peldat. Raadasul if is evil :D

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Pont ez a problemam. Nagyon sokszor kell nem letezo fajlokat kiszolgalnom ugy, hogy a location mas mappara mutat, illetve nagyon sokszor kell letezo fajlokat jelszovedenem. Ilyenkor rossz a try_files mert nem nyujt semmilyen parameterezesi lehetoseget, viszont mindent, amirol ugy gondolja, hogy ra vonatkozik, azt magara vesz, fuggetlenul attol, hogy az adott fajlhoz esetleg van egy jobban matchelo location szekcio. Ezzel teljesen megboritja mind a location, mind a rewrite rendszer mukodeset, emiatt ha lehet, elkerulom a hasznalatat. Es igen, tudom, hogy if is evil, de ha egyszer nincs ertelmes es megbizhato megoldas, akkor sajnos muszaj evil dolgokat hasznalni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

vagy egy root-al megmondja neki hogy annak a location-nek a file-jait hol keresse es ez ugye nem csak a png gif jpg stb-re vonatkozik..