Назад | Перейти на главную страницу

Обслуживание статического содержимого с помощью Apache2

Я действительно новичок в apache2 и ранее работал с Nginx. Я пытаюсь использовать псевдоним в apache2 для обслуживания статического контента. Начнем с простого примера.

Я попытался этот из, и это тоже не сработало. Совет?

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>

Я тоже пробовал это с цитатами на основе этого ответ:

<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>

У меня есть logo.png, расположенный по адресу

/home/ubuntu/static/logo.png

alias_module включен:

$ apache2ctl -M | grep alias
 alias_module (shared)

Когда я набираю 13.67.35.134/static/logo.png, я получаю 404, это 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"

Решение

Спасибо @AndrewSchulman за то, что он указал, что Proxy Pass в моем файле 000-default.conf лишает возможности доступа к моему статическому контенту.

Если у вас нет другого веб-сервера, работающего на localhost: 5000 (и я не знаю, зачем вы это делаете, за исключением тестирования, я полагаю), вам следует удалить ProxyPass / http://127.0.0.1:5000/ директива.