1

我的 Nextcloud 服务器运行良好,ip 192.168.0.1 在另一台 IP 为 192.168.0.2 的机器上安装了 collabora 在线服务器 我有一个公共 IP 和两个单独的域,这些服务器指向同一个 piblic IP

我尝试做的是使用 nginx 相应地分配流量。Nextcloud 的配置运行良好:

upstream php-handler {
    server unix:/var/run/php/php7.0-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name first.domain.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name first.domain.com;
...

现在我正在为协作服务器添加第二个配置:

server {
    listen 80;
    listen [::]:80;
    server_name second.domain.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}


server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name second.domain.com;
    ssl_certificate /etc/ssl/private/server.crt;
    ssl_certificate_key /etc/ssl/private/server.key;
    ssl_password_file /etc/ssl/private/server.pass;


    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://second.domain.com;
    }
}

我已添加192.168.0.2 second.domain.com到主机文件

该服务器还运行 nginx:

server {
   listen 443 ssl;
   server_name second.domain.com;

    ssl_certificate /etc/ssl/private/server.crt;
    ssl_certificate_key /etc/ssl/private/server.key;
    ssl_password_file /etc/ssl/private/server.pass;
    # static files
    location ^~ /loleaflet {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass https://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass https://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass https://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
}

当我打开文件时,协作窗口在 nextcloud 中打开为空白

nextcloud 服务器上的 nginx 给出响应 400。

"GET /lool/https%3A%2F%2Ffirst.domain.com%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F6932_ocqfsn9n2v8v%3Faccess_token%3DOObPuPjPgz7ycgmvNAklYGo1clIANWXU%26access_token_ttl%3D0%26permission%3Dedit/ws?WOPISrc=https%3A%2F%2Ffirst.domain.com%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F6932_ocqfsn9n2v8v&compat=/ws HTTP/1.1" 400 0

所以不知何故我没有做正确的重定向。我需要有关 nginx 配置的帮助。我知道 collabora 服务器可以工作,因为当我second.domain.com 192.168.0.2在客户端的主机文件中设置并且没有来自 nginx 的重定向时,它工作正常

4

0 回答 0