Apache httpd module releases
Hi,
the documentation talks about downloading a mod_cluster release (https://docs.modcluster.io/#downloads) and using it by unzipping (https://docs.modcluster.io/#install-the-whole-httpd).
The download links here https://www.modcluster.io/downloads/ however only direct to this GitHub repository, which I can only locate source tarballs in.
Am I missing something / should the documentation be updated to reference build instructions instead? The README in this repository seems to furthermore only reference the JBOSS implementation, not the Apache modules.
Thanks for any pointers!
@tacerus Let me explain the background first: when the project moved out of the POC stage in 2009 all the native and container integration modules were moved to a single repo. That is unfortunately an antipattern since those modules have a different release lifecycle. From 1.4.x and later branches, the native code has been moved out to a separate repository at https://github.com/modcluster/mod_proxy_cluster
The last release for which native builds for httpd have been published is https://github.com/modcluster/mod_cluster/releases/tag/1.3.11.Final Currently, to use any later version you need to compile the modules yourself - building instructions are at https://docs.modcluster.io/#building-httpd-modules Also, contributions are welcome @tacerus
@jfclere Would you be able to fix this and publish the native builds for 1.3.x releases?
The so module files are highly dependent on the Apache httpd version, basically each distribution has it own version of Apache httpd so it is nearly impossible to build a 1.3.x that will work on most Linux distribution. A lot of distributions have mod_cluster, for example on fedora35 we have: mod_cluster x86_64 1.3.16-2.fc35 [jfclere@ovpn-113-163 jws-operator]$ rpm -ql mod_cluster /etc/httpd/conf.d/mod_cluster.conf /usr/lib/.build-id /usr/lib/.build-id/63 /usr/lib/.build-id/63/b8d7462e334e92d98285faecff28a9c8c55242 /usr/lib/.build-id/79 /usr/lib/.build-id/79/e26a4650d5ef7c2eab7223b70225f24996ea36 /usr/lib/.build-id/90 /usr/lib/.build-id/90/21dd86ef200ef6ef3a1f94be98d00865c611c7 /usr/lib/.build-id/a3 /usr/lib/.build-id/a3/0553c4e88817ae1d8fa118f64aa99b5d81dc3e /usr/lib64/httpd/modules/mod_advertise.so /usr/lib64/httpd/modules/mod_cluster_slotmem.so /usr/lib64/httpd/modules/mod_manager.so /usr/lib64/httpd/modules/mod_proxy_cluster.so /usr/share/doc/mod_cluster /usr/share/doc/mod_cluster/README /usr/share/licenses/mod_cluster /usr/share/licenses/mod_cluster/lgpl.txt
Thank you for elaborating, @rhusar. Does that mean it is recommended to use 1.3.11 or to build 1.4.x on ones own? As the binary installation documentation I linked does not seem to differentiate between the two, linking only the 1.3 release, making it seem like the binary installation of the older version is preferred.
You are looking for windows builds based on the apachelounge versions? For native you should build the 1.3.16.Final with latest apachelounge version.
Sorry, I don't know what apachelounge is and do not use Windows.
So which OS are you using?
openSUSE, but how is it related? I can run either version just fine, it is just not clear what the recommended route is.
OK so you are just complaining https://docs.modcluster.io/#downloads is outdated and misleading, correct?
Does that mean it is recommended to use 1.3.11 or to build 1.4.x on ones own? As the binary installation documentation I linked does not seem to differentiate between the two, linking only the 1.3 release, making it seem like the binary installation of the older version is preferred.
Unfortunately this will remain confusing till the end of time until we rename things and start anew: there is no native 1.4.x version. The latest supported version is in the 1.3.x branch. Since 1.4 (and now 2.0) the container integration modules are really tracking advancements in the container integration, supporting JDKs and Tomcat versions – none of which is interest of the native modules.
The versions remain compatible because they communicate using a defined protocol (MCMP).
Perhaps we should put out a support matrix somewhere in the docs and explain this better.
OK so you are just complaining https://docs.modcluster.io/#downloads is outdated and misleading, correct?
It's not a complaint but a question where to get the latest binaries. To which the answer is: you need to build 1.3.x for your OS/apache distros from source.
To which my question to you @jfclere is whether we can do something about this so people don't have to built it themselves?
@rhusar there are too many flavours and versions of Apache httpd to have the *.so built and tested. @Karm used to build the windows apachelounge binaries and add them to release. There is a script in https://github.com/modcluster/ci.modcluster.io/tree/main/windows/mod_proxy_cluster that does that part.
Sorry for the confusion. I wasn't complaining or anything - I just got confused at the manual section "Download" and "Quick start" instructing you to download and extract release binaries for 1.3.x, but the download link points to a GitHub source download for version 2.0.x. Hence it is not clear whether one should dig for the old 1.3.x releases, or build the non-documented 2.0.x instead. The question mainly is whether it is simply the documentation needing an update (which I am happy to provide), instructing the user to simply always build the newest release from source against their httpd version, or whether downloading a prebuilt old version (1.3.x) is the actual recommended way to go for a production run.
If the route of pre-built releases is too cumbersome to maintain, I think it would be perfectly valid to only provide build instructions, scrapping the idea of release downloads altogether.
I have proposed https://github.com/modcluster/docs.modcluster.io/pull/56
Closing in favor of https://github.com/modcluster/mod_proxy_cluster/issues/38