Хорошо, у меня есть 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;
}