Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can I use other Apache modules? #10

Open
dAnjou opened this issue Sep 9, 2016 · 2 comments
Open

How can I use other Apache modules? #10

dAnjou opened this issue Sep 9, 2016 · 2 comments

Comments

@dAnjou
Copy link

dAnjou commented Sep 9, 2016

So, Apache (or httpd) is very modular which I consider one of its biggest strength. But how can I use 3rd party modules like mod_xsendfile?

@GrahamDumpleton
Copy link
Owner

GrahamDumpleton commented Sep 11, 2016

You can create a derived Docker image which installs mod_xsendfile, but the image doesn't use the system Apache packages as they do not support HTTP/2. This means you cannot simply install any mod_xsendfile packaged by the Linux distribution. You would instead need to down mod_xsendfile source yourself and build it using the Apache version which has been installed.

That said, there are few issues.

The first is whether I should consider including mod_xsendfile myself since you aren't likely to be the last to ask.

The second is though that depending on your requirements, mod_wsgi in daemon mode (as it runs with this Docker image), has something similar to mod_xsendfile. That is, you can return an empty 200 response with a Location header with a URL path to a subsequent resource to be served up.

So it isn't a file system path and as a result the URL must be able to be mapped by Apache, but it can map to static files. If those static files need to be private and not directly accessible, there is a little bit of extra config required to protect them. The 200/Location mechanism may not be supported by extensions for frameworks for doing this sort of delegation of file serving.

The third is that mod_wsgi-docker is heading towards being marked as deprecated. I have a much better version of the image which does things a lot better and is much more flexible. Depending on how you are using the current image, you may need to tweak some things, but otherwise shouldn't be that hard to move to it when it is marked as ready for use.

So quickest thing initially can do is see whether can use the 200/Location mechanism instead. What WSGI framework are you using and are you using some extension for that which tries to wrap up this functionality, or are you setting headers directly?

@dAnjou
Copy link
Author

dAnjou commented Sep 11, 2016

Thanks for replying.

I wasn't using anything before, so my question came up while evaluating options, in the end I went with httpd's image and installed mod_wsgi and mod_xsendfile using apxs.

I think it's crucial though that an image based on httpd supports other modules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants