使用其他反向代理

从 Seafile 12.0 开始,所有 基于 Docker 的单节点部署 的反向代理、HTTPS 等处理都由  caddy   处理。如果您需要使用其他反向代理服务,可以参考本文档修改相关配置文件。
需要反向代理的服务
在更改配置文件之前, 您必须 了解 Seafile 和相关组件使用的服务。
下表所示的服务均基于 Seafile 官方文档的 单节点集成部署
如果这些服务以 独立模式部署 (如  seadoc   notification-server ),或者部署在第三方插件的 官方文档中 (如  onlyoffice
    collabora ),则 可以跳过修改这些服务的配置文件 (因为 Caddy 不用作此类部署方式的反向代理)。
如果您尚未集成 中的服务,请在需要这些服务时选择   Standalone 或 参考第三方插件的官方文档进行安装。
YML
服务
建议暴露端口
服务监听端口
需要 WebSocket
seafile-server.yml
seafile
80
80
No
seadoc.yml
seadoc
8888
80
Yes
notification-server.yml
notification-server
8083
8083
Yes
collabora.yml
collabora
6232
9980
No
onlyoffice.yml
onlyoffice
6233
80
No
thumbnail-server.yml
thumbnail
8084
80
No
修改 YML 文件
  1. 有关相关服务公开的端口,请参阅上表。为相应服务添加部分 ports
            
                
                
services:
     <the service need to be modified>:
         ...
         ports:
             - "<Suggest exposed port>:<Service listen port>"
2. 删除与 Caddy 反向代理相关的所有字段( label 部分)
一些 .yml 文件(例如 onlyoffice.yml )也有端口公开信息,文件顶部有 Caddy,这些信息也需要删除。
我们以 seafile-server.yml 为例(专业版):
            
                
                
services:
     # ... other services

     seafile:
     image: ${SEAFILE_IMAGE:-seafileltd/seafile-pro-mc:13.0-latest}
     container_name: seafile
     ports:
        - "80:80"
     volumes:
       - ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
     environment:
       ... # enviroment variables map, donnot make change

     # please remove the `label` section
     #label: ... <- remove this section

     depends_on:
       ... # dependencies, donnot make change
     ...

# ... other options
相关服务添加反向代理
修改   nginx.conf   并为服务 seafile 和 seadoc 添加反向代理:
如果您的代理服务器的主机与 Seafile 部署到的主机不同,请 将 127.0.0.1 替换到您的 Seafile 服务器的主机
            
                
                
#seafile
location / {
    proxy_pass http://127.0.0.1:80;
    proxy_read_timeout 310s;
    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 Connection "";
    proxy_http_version 1.1;

    client_max_body_size 0;
}
            
                
                
#seadoc
location /sdoc-server/ {
    proxy_pass http://127.0.0.1:8888/;
    proxy_redirect off;
    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-Host $server_name;

    client_max_body_size 100m;
}

location /socket.io {
    proxy_pass http://127.0.0.1:8888;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_redirect off;

    proxy_buffers 8 32k;
    proxy_buffer_size 64k;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
}
            
                
                
#notification-server
location /notification {
    proxy_pass http://127.0.0.1:8083;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    access_log /var/log/nginx/notification.access.log seafileformat;
    error_log /var/log/nginx/notification.error.log;
}
            
                
                
#onlyoffice
map $http_x_forwarded_proto $the_scheme {
    default $http_x_forwarded_proto;
    "" $scheme;
}
map $http_x_forwarded_host $the_host {
    default $http_x_forwarded_host;
    "" $host;
}
map $http_upgrade $proxy_connection {
    default upgrade;
    "" close;
}
location /onlyofficeds/ {
    proxy_pass http://127.0.0.1:6233/;
    proxy_http_version 1.1;
    client_max_body_size 100M;
    proxy_read_timeout 3600s;
    proxy_connect_timeout 3600s;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $proxy_connection;
    proxy_set_header X-Forwarded-Host $the_host/onlyofficeds;
    proxy_set_header X-Forwarded-Proto $the_scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
            
                
                
#thumbnail
location /thumbnail {
    proxy_pass http://127.0.0.1:8084;
    proxy_http_version 1.1;
    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;

    access_log /var/log/nginx/thumbnail.access.log;
    error_log /var/log/nginx/thumbnail.error.log;
}
修改.env
  .env   中的字段 COMPOSE_FILE 中删除 caddy.yml ,例如
            
                
                
COMPOSE_FILE='seafile-server.yml' # remove caddy.yml
重启服务和 nginx
            
                
                
docker compose down
docker compose up -d
nginx restart