I am trying to setup dockerized Yarr behind a Nginx reverse proxy.
I have two Yarr docker images built right now: v1.4 and v2.0. Both versions work just fine when served directly, without reverse proxy.
Docker image built from tag v1.4 works as expected.
Nginx logs when accessing https://yarr.example.com
:
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET / HTTP/2.0" 200 39565 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/stylesheets/app.css HTTP/2.0" 200 10437 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/fetch.umd.js HTTP/2.0" 200 17934 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/vue.min.js HTTP/2.0" 200 93670 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/purify.min.js HTTP/2.0" 200 16941 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/url-polyfill.min.js HTTP/2.0" 200 6358 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/stylesheets/bootstrap.min.css HTTP/2.0" 200 160403 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/app.js HTTP/2.0" 200 18643 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/popper.min.js HTTP/2.0" 200 17883 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/api.js HTTP/2.0" 200 2967 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/vue-lazyload.js HTTP/2.0" 200 20764 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/Readability.min.js HTTP/2.0" 200 27755 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:27 +0000] "GET /static/javascripts/keybindings.js HTTP/2.0" 200 4904 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /static/javascripts/bootstrap-vue.min.js HTTP/2.0" 200 381485 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /api/feeds HTTP/2.0" 200 3 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /api/status HTTP/2.0" 200 25 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /api/folders HTTP/2.0" 200 3 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /api/settings HTTP/2.0" 200 162 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /api/items? HTTP/2.0" 200 37 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
192.168.1.5 - - [25/Apr/2021:14:22:28 +0000] "GET /static/graphicarts/anchor.png HTTP/2.0" 200 395 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
With v2.0, when I proceed to https://yarr.example.com
, Firefox tries to download application/octet-stream
file with a random name, without extension (for example dE9ike23
). It seems to be a valid HTML file – see this gist.
Nginx logs:
192.168.1.5 - - [25/Apr/2021:14:23:59 +0000] "GET / HTTP/2.0" 200 5897 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"
Relevant part of the docker-compose file:
[...]
yarr:
container_name: yarr
image: yarr2 # or yarr1
restart: always
networks:
- nginx
expose:
- 7070
volumes:
- yarr:/data
[...]
Relevant part of the Nginx config file:
[...]
server {
listen 443 ssl http2;
server_name yarr.example.com;
location / {
proxy_pass http://yarr:7070;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
[...]
Please let me know if above information is sufficient, or should I include anything else.