Opened 3 years ago

Last modified 3 years ago

#2182 new enhancement

Add fast-cgi and SPDY support to jetty

Reported by: Reportage Owned by:
Priority: minor Milestone: undecided
Component: apps/jetty Version: 0.9.33
Keywords: jetty, spdy, fast-cgi Cc:
Parent Tickets: Sensitive: no

Description (last modified by Reportage)

Adding support for php, ruby and python would extend the usefulness of the jetty web server included with I2P, removing the need for a separate web server. It would also permit development of plugins running on php etc, opening up the plugin ecosystem to the full range of web applications that currently require a 3rd party server to deploy eg. wordpress, phpbb etc.

SPDY offers improved pageload performance, and is implemented in Jetty 9.

As SPDY only supports SSL transactions, implementing the protocol in the router console first (when SSL is enabled) and then, when ready, SSL-enabled eepsites, would presumably be the route to take.


Change History (5)

comment:1 Changed 3 years ago by Reportage

Description: modified (diff)

comment:2 Changed 3 years ago by Reportage

Description: modified (diff)

comment:3 Changed 3 years ago by zzz

request 1:

Jetty certainly supports these, as described in the links you referenced.
Whether we bundle the required jars, I don't know. But assuming we do, we support this now, and there's nothing for us to do.
Unless you're suggesting we enable it by default, or make some fancy config for it, as you're requesting in #2102.

However, our standing advice for those wanting PHP (or ruby or python cgi) is to use another webserver - Apache, nginx, lighttd - where config is much easier and there's lots more help out there on the web. Nobody's ever complained about that advice before - they're happy we told them to get away from Jetty, they didn't like it anyway.

Regarding your plugin use case (which sounds like speculation, haven't ever heard anybody ask, correct me if I'm wrong), any plugin dev who needs such a thing is welcome to do the configuration (and add any necessary jars) in the plugin. Nothing required from us.

Unless somebody comes up with some specific and immediate use case not solvable with the above, this isn't going to happen.

request 2:

SPDY is dead. You most certainly mean HTTP/2.
HTTP/2, I believe, generally isn't enabled over http, and it would be infeasible for us to add support to our client and server http proxies.
Therefore, this depends on enabling https for eepsites by default, which is #2159.
Also, I believe HTTP/2 support doesn't really work in Jetty 9.2; therefore, this depends on Jetty 9.3/9.4, which is #2098.
Once those two prerequisites are met, it should magically work if we bundle the required jars.

Last edited 3 years ago by zzz (previous) (diff)

comment:4 Changed 3 years ago by Reportage

Description: modified (diff)

comment:5 Changed 3 years ago by Reportage

Re: fast-cgi: Aside from providing a more complete web server solution with I2P that facilitates serving php etc, the main benefit of providing fast-cgi support out of the box is the reduced memory requirements for running a fully-fledged web server on I2P. Raspberry Pi users and others that run I2P on low-memory devices will benefit. Providing a self-contained solution that has minimal external dependencies and is easy to configure can only serve to increase the attractiveness of running a web server on I2P.

Couple fast-cgi support with an sqlite implementation, and the jetty web server in I2P becomes a lot more interesting, and useful.

Re: http/2

Last edited 3 years ago by Reportage (previous) (diff)
Note: See TracTickets for help on using tickets.