用frp把家里的airsonic挂到了公网服务器上,再用nginx反向代理设置域名和SSL,结果老是不能正常访问。
问题描述
不断尝试更改nginx反向代理配置,但问题一直没有解决,有时是网站跳转时端口不对,有时是协议不对。总之归纳原因其实只有一个,就是服务端生成的URL不正确。
更改过各种代理配置,但都无法解决,就要放弃的时候,看到了下面的介绍,原来官方早以给出了问题的解决方法,只怪自己英文不好。
当时用GOOGLE翻译了一下,就看到反向代理什么的需要配置JAVA_OPTS
解决方法
首先airsonic服务器需要加上面说的那个环境变量,我用的docker,如下
docker run -d \
--name=airsonic \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e CONTEXT_PATH=<URL_BASE> \
-e JAVA_OPTS="-Dserver.use-forward-headers=true" \
-p 4040:4040 \
-v </path/to/config>:/config \
-v </path/to/music>:/music \
-v </path/to/playlists>:/playlists \
-v </path/to/podcasts>:/podcasts \
-v </path/to/other media>:/media \
--device /dev/snd:/dev/snd \
--restart unless-stopped \
ghcr.io/linuxserver/airsonic
然后在nginx反向代理配置文件中加个forward-headers相关参数
proxy_set_header X-Forwarded-For xxx.xxx.xxx.xxx;
proxy_set_header X-Forwarded-Host proxyserver;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host:443; #我这里给Host和X-Forwarded-Host都加了端口号,因为不加的话还是会出问题
转载请注明:HANLEI'BLOG » 用nginx给airsonic做反向代理出现的问题