я пытаюсь установить Йоттер на моем сервере, и я хочу использовать apache вместо nginx. инструкция по установке перечисляет только файл конфигурации nginx, который я пытаюсь «перевести».
В конфиге три разных прокси-маршрута, первый ведет к докер-контейнеру, второй (/статический/) в каталог с таблицами стилей и тому подобным, а последний — в сокет домена unix.
В моем случае первый маршрут работает (я могу получить доступ к сайту), но каждый запрос к статическому ресурсу возвращает 404. Похоже, что каждый запрос использует директиву Docker ProxyPass (независимо от порядка: если я поставлю этот последний (см. ниже), он до сих пор используется только один).
Это (часть) созданного файла журнала:
yotter.domain.tld - - [12/Aug/2021:21:14:21 +0200] "GET /static/favicons/favicon.ico HTTP/1.1" 404 1935 file=proxy:http://127.0.0.1: 5000/static/favicons/favicon.ico
yotter.domain.tld - - [12/Aug/2021:21:15:54 +0200] "GET /index HTTP/1.1" 200 1126 file=proxy:http://127.0.0.1:5000/index
yotter.domain.tld - - [12/Aug/2021:21:15:54 +0200] "GET /static/semantic/semantic.min.css HTTP/1.1" 404 1935 file=proxy:http://127.0. 0.1:5000/статический/семантический/семантический.min.css
Что может быть причиной этого?
Это конфигурация nginx:
сервер {
слушать 80;
имя_сервера <example.com>; # Измени меня
доступ_лог выключен;
место расположения / {
прокси_пароль http://127.0.0.1:5000;
прокси_http_версия 1.1;
proxy_set_header Соединение "";
}
местоположение /статическое/ {
корень /home/ubuntu/Yotter/app/; # Измените это в зависимости от того, где вы клонируете Yotter
отправить файл включен;
потоки aio=по умолчанию;
}
местоположение ~ (^/videoplayback$|/videoplayback/|/vi/|/a/) {
proxy_pass http://unix:/var/run/ytproxy/http-proxy.sock;
add_header Access-Control-Allow-Origin *;
отправить файл включен;
tcp_nopush включен;
aio_записать;
потоки aio=по умолчанию;
направление 512;
прокси_http_версия 1.1;
proxy_set_header Соединение "";
}
}
И вот что у меня пока есть:
<VirtualHost *:443>
ServerName yotter.domain.tld
LogFormat "%v %l %u %t \"%r\" %>s %b file=%f" commonvhost
CustomLog ${APACHE_LOG_DIR}/yotter_access.log commonvhost
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
<Location "/">
ProxyPass http://127.0.0.1:5000/
ProxyPassReverse http://127.0.0.1:5000/
</Location>
<Location "/static">
Alias "/var/www/Yotter/app/static"
</Location>
<Directory "/var/www/Yotter/app/">
Require all granted
</Directory>
<LocationMatch (^/videoplayback$|/videoplayback/|/vi/|/a/)>
ProxyPass unix:///var/run/ytproxy/http-proxy.sock
ProxyPassReverse unix:///var/run/ytproxy/http-proxy.sock
Header add Acces-Control-Allow-Origin: *
</LocationMatch>
</VirtualHost>
или же
<VirtualHost *:443>
ServerName yotter.domain.tld
LogFormat "%v %l %u %t \"%r\" %>s %b file=%f" commonvhost
CustomLog ${APACHE_LOG_DIR}/yotter_access.log commonvhost
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
Alias "/static" "/var/www/Yotter/app/static"
<Directory "/var/www/Yotter/app/">
Require all granted
</Directory>
<LocationMatch (^/videoplayback$|/videoplayback/|/vi/|/a/)>
ProxyPass unix:///var/run/ytproxy/http-proxy.sock
ProxyPassReverse unix:///var/run/ytproxy/http-proxy.sock
Header add Acces-Control-Allow-Origin: *
</LocationMatch>
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
</VirtualHost>