docker, nginx, apache2

 ( szz | 2019. február 21., csütörtök - 10:27 )

Egy különös tapasztalatomat szeretném megosztani.
Docker környezetben használok (helyi fejlesztésre) webszerver + php-fpm + adatbázis(mysql vagy postgresql) megoldást.
Van egy YII-1 alapú webalkalmazás, amit hasonlóan oldottam meg; webszerverként nginx-et használtam.

Ezzel azonban volt egy olyan gond, hogy egy-egy táblázat fejlécében megadható (bootstrap és jquery alapú) filter nem működött. Hiába írtam be bármit, nem "hatott", továbbra is a teljes táblázat (illetve annak első oldala) látszott. Az éles rendszer apache2 alapú, és ott kiválóan ment. Az inspector nem mutatott semmi észrevehető különbséget a kettő közt. Csak ez volt a tapasztalat, hogy a filter itt nem működik, élesen igen.

Aztán egy munkatársam javaslatára áttettem a docker környezetben a webszervert apache2-re (azaz httpd docker image-re), és kiválóan megy minden.

Nem értem, mi lehet a különbség. (A php verzió minkét helyen 7.2, de ez nem játszott talán szerepet.) Gondolom, valami másként van alapértelmezve az nginx és az apache2 világában, de nem jöttem rá, hogy mi.

A két docker-compose fájl: http://porgeto.hu/img/docker-compose_nginx.yml és http://porgeto.hu/img/docker-compose_apache.yml
Az egyéb docker beállítások pedig a http://porgeto.hu/img/docker.zip -ben láthatóak.

Megemlítenék még két linket, amelyek segítettek az nginx -> apache2 átállásban (főleg az első):
http://www.inanzzz.com/index.php/post/su76/creating-apache-mysql-and-php-fpm-containers-for-a-web-application-with-docker-compose
https://github.com/OpenDataStack/docker-apache-php-fpm

===
Ha van valakinek ötlete, hogy mi hathat másként nginx alatt, mint apache2 alatt, megköszönném. Örülnék, ha webszerver-független lehetne az alkalmazás.

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ő.

A kérdés az, hogy a PHP oldal megkapja-e a query stringeket. Valószínűleg itt lesz a kutya elásva, ésszerű feltételezni azt, hogy a szűrés paraméterek azon keresztül érkeznek, és láttam már olyat, hogy nginx rewrite / nem túl jó php-fpm config elnyelte.

Köszi az észrevételt, jogos lehet.

Könnyen lehet. Látok egy ilyet:
location ~ \.(php)(/.*)?$ {
A js-fájlokat hogyan kéri le? El tudom képzelni, hogy esetleg erre a regexpre stimmel valami, és ahelyett, hogy a fájlt adná, egy php-t akar futtatni.
Nem voltak furcsa hibaüzenetek a logokban?

Nem látok a logban semmi extrát. Bár lehet, hogy le volt tompítva a log level. http://porgeto.hu/img/nginx_log.mp4 (A chrome jól lejátssza).