[Catalyst-dev] Trouble with ProxyPass

Andreas Marienborg omega at palle.net
Tue Jun 18 04:16:40 GMT 2013


On Jun 17, 2013, at 6:44 PM, Jillian Rowe <jir2004 at qatar-med.cornell.edu> wrote:

> Hello,
> 
> I'm having trouble getting my application running under ProxyPass using
> Apache. I'm not entirely sure if it my worries lie in catalyst or
> apache. I do have another application (not catalyst) which uses
> proxypass with the exact same SSL config and its fine.
> 
> It will display pages fine, but when I go to submit a form I get the
> following:
> 
> "Although this page is encrypted, the information you have entered is to
> be sent over an unencrypted connection and could easily be read by a
> third party.
> 
> Are you sure you want to continue sending this information?"
> 
> 
> This is what my apache config looks like:
> 
> 
>        ProxyRequests On
>        ProxyVia On
>        ProxyReceiveBufferSize 16384
>        <Location />
>                ProxyPass http://127.0.0.1:3000/
>                ProxyPassReverse http://127.0.0.1:3000/
>                SetEnv force-proxy-request-1.0 1
>                SetEnv proxy-nokeepalive 1
> 
>                SSLRequireSSL
>                SetHandler perl-script
>                RequestHeader set X-URL-SCHEME https
>                Order allow,deny
>                Allow from all
>        </Location>
> 
> I have $c->config->{using_frontend_proxy} = 1.
> 
> My application works fine if I just do localhost:3000, and it also works
> fine when I run it as a fastcgi application. I do not get the security
> warning when running either under development or fastcgi.

I assume what happens is that you use $c->uri_for (or c.uri_for in the
template toolkit world) to generate the action for your form, and this 
generates http:// instead of https://?

Have you read trough 
https://metacpan.org/module/Catalyst#PROXY-SUPPORT and
tried to set the X-Forwarded-Port to 443?

> 
> I am looking into using the proxypass option solely for development. I
> am working on an application that uses very big data and log into a
> virtualbox for it. I have several file locations that are references to
> urls.
> 
>  Alias /bigdata /data/share/web_public/bigdata
>        <Directory /data/share/web_public/bigdata>
>           AllowOverride All
>           Options Indexes MultiViews FollowSymLinks
>           order Allow,Deny
>           Allow from all
>        </Directory>
> 
> So I need something happening with apache I think. Is there anyway to
> get Catalyst to alias those paths for me?
> 

You could perhaps have a controller Bigdata that reponds to /bigdata and 
looks for files for you, or use a Plack middleware to wrap your application
in to provide it.

But I don't think letting Apache (or other frontend web servers like nginx)
handle serving of files like that is a bad thing. The deployment documentation
for mod_perl on Apache even specifies this as a good thing:
https://metacpan.org/module/ETHER/Catalyst-Manual-5.9007/lib/Catalyst/Manual/Deployment/Apache/mod_perl.pod#Static-file-handling


Hope this might be helpful


- andreas / omega






More information about the Catalyst-dev mailing list