Serving Static Content with Apache2

I am really new to apache2 and have previously worked with Nginx. I am trying to use alias in apache2 to serve static content. Starting off with a simple example.

I tried this out and it didn't work either. Advice?

000-default.conf:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName 13.67.35.134
    Alias /static /home/ubuntu/static
    <Directory /home/ubuntu/static/>
        Options FollowSymLinks
    </Directory>
    ProxyPass / http://127.0.0.1:5000/
</VirtualHost>

I tried it with quotes too based on this answer:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName 13.67.35.134
    Alias /static "/home/ubuntu/static"
    <Directory "/home/ubuntu/static">
        Options FollowSymLinks
    </Directory>
    ProxyPass / http://127.0.0.1:5000/
</VirtualHost>

I have logo.png located at

/home/ubuntu/static/logo.png

alias_module is enabled:

$ apache2ctl -M | grep alias
 alias_module (shared)

When I type in 13.67.35.134/static/logo.png, I get a 404, this is the access.log

[26/Jan/2018:02:31:02 +0000] "GET /static/logo.png HTTP/1.1" 404 423 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

Solution

Thanks @AndrewSchulman for pointing out that the Proxy Pass in my 000-default.conf file threw off the ability to access my static content.


Unless you have another web server running on localhost:5000 (and I don't know why you'd do that, except for testing I guess), you should remove the ProxyPass / http://127.0.0.1:5000/ directive.