2016-04-03 2 views
1

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

Моя конфигурация похожа следующим образом:

  • Nginx работает для ВХост "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-123456789" 
    
    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 все еще пытается подключиться к «старой» сервис загрузки, который, конечно, больше не работает. До сих пор я не нашел решения для этой проблемы.

+1

Спасибо! Я решил свою проблему, просто взглянув на название вашего вопроса! :) – Avio

ответ

2

Я только что нашел ваш вопрос, имея ту же проблему.

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

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

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

С уважением, Julien

+0

Спасибо! Это действительно странно ... Почему бы им предложить конфигурационный файл и перезаписать его с помощью некоторых настроек базы данных? – Benni

0

Хорошо, поэтому после нескольких часов борьбы я решил переустановить морской файл. Удалив все в своем каталоге, а также все записи mysql, я снова установил его. На этот раз я отредактировал файл seahub_settings.py, прежде чем я начал работать в Seahub в первый раз, и теперь он работает. Вероятно, seahub хранит некоторые кеши конфигурации где-то еще, чем в seahub_settings.pyc. Кажется, какая-то ошибка ...?

Смежные вопросы