Search code examples
apachestaticcherrypymod-proxymod-ssl

Unable to configure Apache to serve static content for CherryPy app. What I am doing wrong?


I have Apache 2.2.15 configured with Mod_Proxy and Mod_SSL and serving CherryPy web application on RHEL 6.3. The only thing I'm struggling with is getting Apache to serve the website's static content (*.js, *.css, *.jpg). Here is my VirtualHost entry...

<VirtualHost mydomain.com:443>
ServerAdmin support@mydomain.com
ServerName mydomain.com
ProxyPreserveHost On
SSLProxyEngine On
DocumentRoot /var/www/html/mydomain

SSLEngine on
SSLCertificateKeyFile /etc/ssl/myserver.key
SSLCertificateFile /etc/ssl/mydomain_com.crt
SSLCertificateChainFile /etc/ssl/mydomain_com.ca-bundle

# this prevents the follow URL path from being proxied
ProxyPass static/ !

# setup the proxy
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass / http://www.mydomain.com:8080/
ProxyPassReverse / http://www.mydomain.com:8080/
</VirtualHost>

For instance the path to my css file is the following...

/var/www/html/mydomain/static/style.css

Since I'm forcing the entire site to be in https when I navigate to

https://www.mydomain.com/static/style.css

or

http://www.mydomain.com/static/style.css

My browser tells me the page is not found (404). Can anyone see what I'm doing wrong?

EDIT: it appears that Apache is still proxying /static... I found this redirect when accessing the /static/style.css in my Apache access log...

xxx.xxx.xxx.xxx - - [17/Sep/2012:08:46:06 -0400] "GET /static/style.css HTTP/1.1" 301 337 "https://www.mydmain.com/Home/" "Mozilla/5.0 (X11; Linux x86_64; rv:10.0.7) Gecko/20120826 Firefox/10.0.7"

anyone know why that is happening?

Thanks in advance!

Andrew


Solution

  • Try adding an alias for your static folder before ProxyPass. It worked like champ for me,

    Alias /static/ /var/www/html/mydomain/static/