Загрузка файла Seafile не работает, даже после установки переменной "FILE_SERVER_ROOT"

Я пытаюсь заставить Seafile работать за обратным прокси-сервером nginx. Я следовал этому: http://manual.seafile.com/deploy/deploy_with_nginx.html вместе с этим: http://manual.seafile.com/deploy/https_with_nginx.html.

Моя конфигурация выглядит следующим образом:

  • Nginx работает для vhost "cloud.mydomain.tld"
  • Seafile и Seahub (в режиме fastcgi) работают на своих портах по умолчанию
  • Мой seahub_settings.py выглядит так:

    HTTP_SERVER_ROOT = 'https://cloud.mydomain.tld/seafhttp' -- I added this to try it
    FILE_SERVER_ROOT = 'https://cloud.mydomain.tld/seafhttp'
    SECRET_KEY = "12345678-1234-1234-1234-1234567890123456"
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'seahub-db',
            'USER': 'seafile',
            'PASSWORD': 'mypassword',
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'OPTIONS': {
                'init_command': 'SET storage_engine=INNODB',
            }
        }
    }
    
  • Моя конфигурация nginx:

    ### Cloud ###
    
    # No-SSL redirect
    server {
            listen 80;
            server_name cloud.mydomain.tld;
            return 301 https://$server_name$request_uri;
    }
    
    # SSL
    server {
            listen 443 ssl;
    
            server_name cloud.mydomain.tld;
            ssl_certificate /etc/letsencrypt/live/cloud.mydomain.tld/cert.pem;
            ssl_certificate_key /etc/letsencrypt/live/cloud.mydomain.tld/privkey.pem;
    
            location / {
                    fastcgi_pass    127.0.0.1:8000;
                    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param   PATH_INFO       $fastcgi_script_name;
    
                    fastcgi_param   SERVER_PROTOCOL $server_protocol;
                    fastcgi_param   QUERY_STRING    $query_string;
                    fastcgi_param   REQUEST_METHOD  $request_method;
                    fastcgi_param   CONTENT_TYPE    $content_type;
                    fastcgi_param   CONTENT_LENGTH  $content_length;
                    fastcgi_param   SERVER_ADDR     $server_addr;
                    fastcgi_param   SERVER_PORT     $server_port;
                    fastcgi_param   SERVER_NAME     $server_name;
                    fastcgi_param   REMOTE_ADDR     $remote_addr;
    
                    access_log      /var/log/nginx/seahub.access.log;
                    error_log       /var/log/nginx/seahub.error.log;
                    fastcgi_read_timeout 36000;
            }
    
            location /seafhttp {
                    rewrite ^/seafhttp(.*)$ $1 break;
                    proxy_pass http://127.0.0.1:8082;
                    client_max_body_size 0;
                    proxy_connect_timeout  36000s;
                    proxy_read_timeout  36000s;
                    proxy_send_timeout  36000s;
                    send_timeout  36000s;
            }
    
            location /media {
                    root /home/cloud/seafile-server-latest/seahub;
            }
    }
    
  • Это должно быть все важно.

Итак, теперь, когда я удаляю свой старый seahub_settings.pyc, запускаю seahub (в режиме fastcgi, конечно), указываю браузер на мою библиотеку и пытаюсь загрузить что-то, я получаю следующее сообщение об ошибке в консоли разработчика F12:

main.ad03aea1e16e.js:215 Mixed Content: The page at 'https://cloud.mydomain.tld/#my-libs/lib/12345678-1234-1234-1234-123456789012' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://cloud.mydomain.tld:8082/upload-aj/12345678-1234-1234-1234-123456789012'. This request has been blocked; the content must be served over HTTPS.
    send @ main.ad03aea1e16e.js:215

Это означает, что SeaHub все еще пытается подключиться к "старой" службе загрузки, которая, конечно, больше не работает. До сих пор я не нашел никакого решения этой проблемы.

2 ответа

Решение

Я только что нашел ваш вопрос с той же проблемой.

Это просто: в seahub-db есть constance_config (с MySQL, то же самое относится и к sqlite), который записывает конфигурацию и перезаписывает простые файлы конфигурации.

Эта конфигурация может быть изменена из консоли администратора (вверху справа), или вы можете просто обрезать эту таблицу, чтобы получить ее заново.

Это новая "функция", начиная с 5.0.0 ( http://manual.seafile.com/config/index.html).

С уважением, Жюльен

Итак, после нескольких часов борьбы я решил переустановить seafile. После удаления всего в его каталоге, а также всех записей mysql я настроил его снова. На этот раз я отредактировал seahub_settings.py-file, ДО того, как я запустил seahub в первый раз, и теперь он работает. Возможно, SeaHub хранит некоторые кэши конфига где-то еще, чем в seahub_settings.pyc, Кажется, это какая-то ошибка...?

Другие вопросы по тегам