[Koha] Working with nginx and installing on URL prefixes

Thomas Klausner domm at plix.at
Sat Oct 7 01:37:53 NZDT 2023


On Fri, Oct 06, 2023 at 01:04:20PM +0200, Daniel Bünzli wrote:
> a) Is there an easy way to convince koha to root its URLs w.r.t. to 
> the prefix we’d like them to be on ? Maybe an environment variable or 
> a launch parameter or an http header to set in the nginx configuration 
> ? (I’m a bit unfamiliar with the whole plack/starman eco-system) 

AFAIK there isn't, and I had the same problem some time ago. The problem 
is mainly that a LOT of templates have hardcoded URLs starting with "/" 
in them (instead of using a resolver like uri_for, which could then 
consider some HTTP Headers to fiddle with the paths)

We ended up with some rather ugly rewrites (of the content, not the 
URLs!!!) using mod_substitute and mod_filter, plus a bunch of 
mod_rewrites (which are comparably easy)

  <Location "/some-other-path/">
    	AddOutputFilterByType SUBSTITUTE text/html text/plain application/json application/javascript
	Substitute "s|/cgi-bin/|/some-other-path/cgi-bin/|i"
	Substitute "s|/intranet-tmpl/|/some-other-path/intranet-tmpl/|i"
	Substitute "s|/api/v1/|/some-other-path/api/v1/|i"

This will take the output generated upstream (i.e. plack) and do actual 
regex replaces on the HTML. So ... ugh...

> b) Is there any strong problem I’m not seeing in trying to setup koha 
> the way I outlined above and use nginx rather than apache to serve the 
> app ?  

There might be some long-running scripts left that can only be run as 
CGI (because they fork). You can find those in apache-shared-intranet-plack.conf
after "# FIXME: These scripts should be fixed so they..." (at least in 
22.11). But maybe they all have been ported to RabbitMQ, in which case I 
think there should be no problems using nginx as a frontend (or maybe 
they can also be made to work with nginx?)

But maybe I also remeber this wrong, but I think we decided to keep 
Apache (even though I'd rather use nginx) because of these issues...

Hope that helps,


Thomas Klausner               domm                  https://domm.plix.at
Just another ( Perl | Postgres | Bicycle | Food | Photo | Vinyl ) Hacker

A not-so-short list of things I learned at PerlKohaCon #Perl #Koha
[ 2023-08-19 10:00 > https://domm.plix.at/perl/2023_08_things_i_learned_at_perlkohacon.html ]

Long and good read: http://bit-player.org/2023/ai-and-the-end-of-programming
[ 2023-09-14 12:01 > https://domm.plix.at/microblog.html ]

More information about the Koha mailing list