2024-06-27, 10:33 PM
I am hosting jellyfin as a docker container. It was working perfectly fine until i updated my server and the jellyfin container.
I can access jellyfin without problems via the ip:port. Access over my domain is also possible, but not anymore via via the subdomain.domain.org/ route. I can only access the web interface via subdomain.domain.org/web/index.html. Wouldn't be much of a problem but also my mobile app does not work anymore at all. When i configure the domain to connect to in the app, it just gives an error that the connection could not be established.
When i access the / route it redirect to /web/ which results in a 404.
This is my sites-enabled/jellyfin config:
I can access jellyfin without problems via the ip:port. Access over my domain is also possible, but not anymore via via the subdomain.domain.org/ route. I can only access the web interface via subdomain.domain.org/web/index.html. Wouldn't be much of a problem but also my mobile app does not work anymore at all. When i configure the domain to connect to in the app, it just gives an error that the connection could not be established.
When i access the / route it redirect to /web/ which results in a 404.
This is my sites-enabled/jellyfin config:
server {
server_name subdomain.domain.org;
access_log /var/log/nginx/jellyfin.access;
error_log /var/log/nginx/jellyfin.error;
set $jellyfin 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
# Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
}
# location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/
location ~ ^/web/$ {
# Proxy main Jellyfin traffic
proxy_pass http://$jellyfin:8096/web/index.html/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
location /socket {
# Proxy Jellyfin Websockets traffic
proxy_pass http://$127.0.0.1:8096;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
# Security / XSS Mitigation Headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/subdomain.domain.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = subdomain.domain.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name subdomain.domain.org;
return 404; # managed by Certbot
}