Jellyseerr项目反向代理配置指南
jellyseerr Fork of overseerr for jellyfin support 项目地址: https://gitcode.com/gh_mirrors/je/jellyseerr
前言
Jellyseerr作为一款优秀的媒体请求管理工具,在生产环境中通常需要通过反向代理来提供安全的HTTPS访问。本文将详细介绍如何为Jellyseerr配置各种主流反向代理方案,包括Nginx、Caddy和Traefik。
配置前的注意事项
在开始配置前,需要特别注意的是:
- Jellyseerr目前不支持基础URL(Base URL)配置,这意味着只能使用子域名方式进行代理
- 虽然提供了子目录方式的Nginx配置示例,但这属于非官方支持的变通方案
- 使用子目录方式时,某些功能可能在Jellyseerr更新后失效
Nginx配置方案
子域名方式(推荐)
这是官方推荐的配置方式,步骤如下:
- 创建配置文件
/etc/nginx/sites-available/jellyseerr.example.com.conf
,内容如下:
server {
listen 80;
server_name jellyseerr.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name jellyseerr.example.com;
# SSL证书配置
ssl_certificate /etc/letsencrypt/live/jellyseerr.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyseerr.example.com/privkey.pem;
# 代理头设置
proxy_set_header Referer $http_referer;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-Host $host:$remote_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
location / {
proxy_pass http://127.0.0.1:5055;
}
}
- 创建符号链接启用配置:
sudo ln -s /etc/nginx/sites-available/jellyseerr.example.com.conf /etc/nginx/sites-enabled/
- 测试并重载Nginx配置:
sudo nginx -t && sudo systemctl reload nginx
子目录方式(非官方支持)
虽然不推荐,但在必须使用子目录的情况下,可以使用以下配置:
location ^~ /jellyseerr {
set $app 'jellyseerr';
rewrite ^/jellyseerr/?(.*)$ /$1 break;
proxy_pass http://127.0.0.1:5055;
# 重定向处理
proxy_redirect ^ /$app;
proxy_redirect /setup /$app/setup;
proxy_redirect /login /$app/login;
# 内容替换
proxy_set_header Accept-Encoding "";
sub_filter_once off;
sub_filter_types *;
sub_filter 'href="/"' 'href="/$app"';
sub_filter 'href="/login"' 'href="/$app/login"';
sub_filter 'href:"/"' 'href:"/$app"';
sub_filter '\/_next' '\/$app\/_next';
sub_filter '/_next' '/$app/_next';
sub_filter '/api/v1' '/$app/api/v1';
# 其他路径替换...
}
Caddy v2配置
Caddy配置更为简洁,自动处理HTTPS证书:
- 创建Caddyfile:
jellyseerr.example.com {
reverse_proxy http://127.0.0.1:5055
}
- 启动Caddy:
sudo caddy run --config /path/to/Caddyfile
Caddy会自动:
- 获取并维护SSL证书
- 启用HTTP/2
- 处理HTTPS重定向
Traefik v2配置
在Docker Compose环境中,可以通过标签方式配置:
labels:
- 'traefik.enable=true'
# HTTP路由器配置
- 'traefik.http.routers.jellyseerr-rtr.entrypoints=https'
- 'traefik.http.routers.jellyseerr-rtr.rule=Host(`jellyseerr.domain.com`)'
- 'traefik.http.routers.jellyseerr-rtr.tls=true'
# 服务配置
- 'traefik.http.routers.jellyseerr-rtr.service=jellyseerr-svc'
- 'traefik.http.services.jellyseerr-svc.loadbalancer.server.port=5055'
常见问题解答
Q: 为什么官方不推荐使用子目录方式? A: Jellyseerr的前端代码中有大量硬编码的绝对路径,子目录方式需要通过复杂的替换规则才能工作,这些规则可能在更新后失效。
Q: 如何验证反向代理是否工作正常? A: 访问配置的域名,检查:
- 是否能正常加载界面
- 所有静态资源是否正确加载
- API请求是否正常响应
Q: 使用反向代理后出现跨域问题怎么办? A: 确保代理配置中正确设置了以下头部:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
最佳实践建议
- 优先使用子域名方式配置
- 为Jellyseerr使用独立的SSL证书
- 定期检查代理配置是否与最新版本兼容
- 在生产环境部署前,先在测试环境验证配置
通过以上配置,您可以为Jellyseerr建立安全、高效的反向代理,提升服务的可用性和安全性。
jellyseerr Fork of overseerr for jellyfin support 项目地址: https://gitcode.com/gh_mirrors/je/jellyseerr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考