On Fri, Jan 25, 2019 at 11:35 AM John Dunlap <j...@lariat.co> wrote: > I'm in the process of optimizing our web application for performance and > one thing that I was really excited to try was mod_http2 because it allows > the browser to send multiple requests through the same TCP connection with > compressed headers. However, when I enabled it and restarted apache I was > greeted with this: > > [Fri Jan 25 12:30:57.813355 2019] [http2:warn] [pid 10186] AH10034: The > mpm module (prefork.c) is not supported by mod_http2. The mpm determines > how things are processed in your server. HTTP/2 has more demands in this > regard and the currently selected mpm will just not do. This is an advisory > warning. Your server will continue to work, but the HTTP/2 protocol will be > inactive. >
To this question, the answer should be blatantly obvious; http2 doesn't simply support multiple requests (connection: keepalive solved that) but supports parallel requests. This clearly isn't compatible with any single-threaded/single-worker per connection strategy. A hybrid mod_prefork could be coded to dispatch all worker requests across to distinct worker processes for a single connection, but I don't anticipate anyone interested in doing such development. > The last time I tried to use either mpm_worker or mpm_event my application > was plagued by seemingly random segfaults. Are there any plans to support > other MPM's? If not, the benefits of HTTP2 appear to be permanently out of > reach for our mod_perl applications and that, honestly, might force us into > seriously reevaluating our technology stack. :( > Your compatibility with the worker MPM is likely much stronger than with the event MPM; however... all request workers can behave in a "free threaded" manner under mod_http2, eliminating the relative simplicity of the worker MPM. Working out each and any of these specific segfaults occurs is the only way to improve the situation. For the general mod_perl activity to increase, the Apache Perl Project needs active volunteers and contributions. Consider this entire thread an open invitation to participate.