Marcus Ramberg


Mojolicious::Plugin::MountPSGI - Mount PSGI apps


  # Mojolicious
  $self->plugin('MountPSGI', { '/' => 'ext/MyApp/app.psgi'});

  # Mojolicious::Lite
  plugin 'MountPSGI', { '/' => 'ext/MyApp/app.psgi' };

  # rewrite the path so the psgi app doesn't see the mount point
  # thus app.psgi sees / when /mount is visited
  plugin 'MountPSGI, { '/mount' => 'ext/MyApp/app.psgi', rewrite => 1 };


Mojolicious::Plugin::MountPSGI lets you mount any PSGI app inside a Mojolicious app. For instance you could use this to deploy your PSGI app under hypnotoad, or to include a PSGI app inside a path inside your Mojo app.

The key given is the route under which to mount the app. The value is either a PSGI application or a string which resolves to an instance via "load_psgi" in Plack::Util.

One additional option is rewrite which if set to a true value will rewrite the PATH_INFO and SCRIPT_NAME values in the env hash so that the application does not see the mount point in its request path. This uses the mechanism as described by Plack::App::URLMap.


Mojolicious::Plugin::MountPSGI inherits all methods from Mojolicious::Plugin and implements the following new ones.



Register plugin in Mojolicious application.


Mojolicious, Mojolicious::Guides,


    Joel Berger (jberger)

    Peter Valdemar Mørch (pmorch)


Most of this module was assembled from the Mojo mount plugin and the Mojolicious-Plugin-PlackMiddleware plugin. Copyright on that code belongs to the authors.

The remainder is (C) 2011-2015 Marcus Ramberg and the /CONTRIBUTORS above.


Licensed under the same terms as Perl itself.