
Estoy intentando instalarYotteren mi servidor y quiero usar apache en lugar de nginx. Elguía de instalaciónsolo enumera un archivo de configuración de nginx, que estoy intentando "traducir".
La configuración son tres rutas proxy diferentes, la primera conduce a un contenedor acoplable, la segunda (/estático/) a un directorio con hojas de estilo y cosas así y el último a un socket de dominio Unix.
En mi caso, la primera ruta parece funcionar (puedo acceder al sitio), pero cada solicitud a un recurso estático devuelve un 404. Parece que cada solicitud usa la directiva Docker ProxyPass (sin importar el orden: si pongo esa último (ver más abajo), sigue siendo el único utilizado).
Este es (una parte de) el archivo de registro creado:
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/static/semantic/semantic.min.css
¿Cuál podría ser la razón de ésto?
Esta es la configuración de nginx:
server {
listen 80;
server_name <example.com>; # ChangeME
access_log off;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
location /static/ {
root /home/ubuntu/Yotter/app/; # Change this depending on where you clone Yotter
sendfile on;
aio threads=default;
}
location ~ (^/videoplayback$|/videoplayback/|/vi/|/a/) {
proxy_pass http://unix:/var/run/ytproxy/http-proxy.sock;
add_header Access-Control-Allow-Origin *;
sendfile on;
tcp_nopush on;
aio_write on;
aio threads=default;
directio 512;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Y esto es lo que tengo hasta ahora:
<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>
o
<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>
Respuesta1
Debe excluir las estadísticas del proxy con !
:
ProxyPass "/static" "!"
Esto debería aparecer antes de los comandos de proxy en la configuración.
O:
<Location "/static">
ProxyPass "!"
</Location>
Ver tambiénDocumentación oficial de ProxyPass.