Commit | Line | Data |
ac304f06 |
1 | NAME |
2 | Catalyst::TraitFor::Request::ProxyBase - |
3 | |
4 | SYNOPSIS |
5 | package MyApp; |
6 | use Moose; |
7 | use namespace::autoclean; |
8 | |
9 | use Catalyst; |
10 | use CatalystX::RoleApplicator; |
11 | |
12 | extends 'Catalyst'; |
13 | |
14 | __PACKAGE__->apply_request_class_roles(qw/ |
15 | Catalyst::TraitFor::Request::ProxyBase |
16 | /); |
17 | |
18 | __PACKAGE__->setup; |
19 | |
20 | DESCRIPTION |
21 | This module is a Moose::Role which allows you more flexibility in your |
22 | application's deployment configurations when deployed behind a proxy. |
23 | |
24 | The problem is that there is no standard way for a proxy to tell a |
25 | backend server what the original URI for the request was, or if the |
26 | request was initially SSL. (Yes, I do know about "X-Forwarded-Host", but |
27 | they don't do enough) |
28 | |
29 | This creates an issue for someone wanting to deploy the same cluster of |
30 | application servers behind various URI endpoints. |
31 | |
32 | Using this module, the request base ("$c->req->base") is replaced with |
33 | the contents of the "X-Request-Base" header, which is expected to be a |
34 | full URI, for example: |
35 | |
36 | http://example.com |
37 | https://example.com |
38 | http://other.example.com:81/foo/bar/yourapp |
39 | |
40 | This value will then be used as the base for uris constructed by |
41 | "$c->uri_for". |
42 | |
43 | REQUIRED METHODS |
44 | base |
45 | secure |
46 | |
47 | WRAPPED METHODS |
48 | base |
49 | secure |
50 | |
51 | BUGS |
52 | Probably. Patches welcome, please fork from: |
53 | |
54 | http://github.com/bobtfish/catalyst-traitfor-request-proxybase |
55 | |
56 | and send a pull request. |
57 | |
58 | AUTHOR |
59 | Tomas Doran (t0m) "<bobtfish@bobtfish.net>" |
60 | |
61 | COPYRIGHT |
62 | This module is Copyright (c) 2009 Tomas Doran and is licensed under the |
63 | same terms as perl itself. |
64 | |