利用群晖自带的 Nginx 做反向代理

前记

bitwarden_rs 一直是安装在群晖上的 Docker 中的,对外访问也是通过群晖应用门户程序->反向代理反向代理加路由器端口转发

但是有一个问题,就是群晖 UI 界面的反代没有办法编辑配置,也就没有办法利用 bitwarden_rsWebSocket 自动推送更新

解决

想到的解决方案有两个,第一是通过 Docker 再装一个 Nginx 来做反代,第二是通过群晖自身的 Nginx 来做反代;最后选择了通过自身 Nginx 来做反代

Nginx 配置

/usr/syno/etc/certificate/system/default/ 为群晖安全性->证书上传的默认证书的存储位置

8888、3012 端口为 bitwarden_rs80、3012 映射到群晖对应的端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxx.com;

ssl_certificate /usr/syno/etc/certificate/system/default/fullchain.pem;
ssl_certificate_key /usr/syno/etc/certificate/system/default/privkey.pem;

#ssl_session_cache shared:SSL:50m;
ssl_session_timeout 4h;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_buffer_size 4k;

if ($scheme = http) {
return 301 https://$host$request_uri;
}

location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host:$server_port;
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_redirect http:// https://;
}

# bw WebSockets
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

# bw WebSockets
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8888;
}

error_page 403 404 500 502 503 504 @error_page;

location @error_page {
root /usr/syno/share/nginx;
rewrite (.*) /error.html break;
allow all;
}
}

链接

将配置文件链接到 /etc/nginx/sites-enabled/
ln -s /volume1/docker/nginx/xxx.com.conf /etc/nginx/sites-enabled/

重启

最后只需要重启 Nginx 即可
sudo synoservicecfg --restart nginx