Назад | Перейти на главную страницу

Директива Nginx to Apache2 Location, proxy_pass, отдельный IP, перенаправление HTTPS на HTTP, nextcloud

Хорошо, у меня есть 2 сервера, один интерфейс на 192.168.1.100 с nginx, один бэкэнд на 192.168.1.151 с apache2. У меня nextcloud работает на порте 80 на внутреннем сервере, и я хочу проксировать его с моего внешнего сервера, на котором работает https на 443. У меня возникли проблемы с его правильной настройкой.

Я пробовал несколько конфигов, и этот конфиг - самый близкий из возможных. Вот моя директива местоположения nginx:

 location /nextcloud/ {
            proxy_pass http://192.168.1.151:80/nextcloud/;
            proxy_read_timeout    90;
            proxy_connect_timeout 90;
            proxy_redirect        off;

            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 https;
            proxy_set_header      X-Forwarded-Port 443;
            proxy_set_header      Host $host;
    }

Вот мой файл nextcloud config.php:

    'trusted_domains' =>
  array (
    0 => '192.168.1.151'        ,
    1 => '192.168.1.100'        ,
    2 => '*******.******.org' ,
  ),
  'datadirectory' => '/var/www/nextcloud/data/',
  'overwrite.cli.url' => 'https://********.*********.org/nextcloud/',

Когда я пытаюсь использовать URL-адрес, я получаю приглашение для входа в систему nextcloud, но без форматирования (я предполагаю, что это как-то связано с https или http?) Вот изображение того, что я получаю:

У меня почти такая же проблема с GOGS (Git on Go). Я выполнил эту настройку с помощью apache2 на одном сервере (а не с несколькими IP-адресами), но не могу заставить его работать с nginx и отдельными IP-адресами.

РЕДАКТИРОВАТЬ: должен был добавить мой журнал хромированной консоли. Как я и подозревал, он полон ошибок 404 для таких вещей, как: https: //*******.*******.org/nextcloud/core/js/login.js? V = 49006b299079b9bc3c4fcdf3d018d44a

Я легко могу найти этот файл по адресу /var/www/nextcloud/core/js/login.js, поэтому он наверняка существует. Любые идеи?

В моей конфигурации отсутствовала основная часть: proxy_redirect http:// https://; Это без проблем перенаправит весь http-трафик на https. Это моя текущая рабочая конфигурация, с некоторыми поправками, которые позволили ей работать немного лучше:

 location ^~ /nextcloud/ {
            proxy_pass http://192.168.1.151/nextcloud/;
            proxy_redirect  http:// https://;

            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_set_header      Host $host:$server_port;
    }