Moodle 3.5 с обратным прокси - PullRequest
0 голосов
/ 04 июля 2018

У меня проблемы с настройкой экземпляра Moodle за прокси-сервером Apache.

Вот мой внешний интерфейс apache, который прокси на работающий сервер.

<VirtualHost *:80>
    ServerName public.domain.com

ProxyRequests Off
ProxyPreserveHost On

ProxyPass / http://10.10.10.10:81/moodle/
ProxyPassReverse / http://10.10.10.10:81/moodle/
</VirtualHost>

И.

$CFG->wwwroot = 'http://public.domain.com';

Я устанавливаю без проблем, но после завершения установки я пытаюсь в браузере:

http://public.domain.com

Это перенаправление на: http://public.domain.com/moodle/index.php?sessionstarted=1&lang=en...

Кто-нибудь знает, что может происходить?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Наконец я смог решить проблему, я пишу этот ответ с большим уровнем детализации, чтобы другие люди, имеющие эту проблему, могли последовать моему ответу.

Сначала нам нужно отредактировать конфигурацию apache2 для нашего сайта: В общем, конфигурацию apache2 для указанного вами сайта можно найти по адресу /etc/apache2/sites-enabled. В зависимости от того, используете ли вы http или https, вам нужно отредактировать правильный файл конфигурации. Имя по умолчанию для http 000-default.conf и для https 000-default-ssl.conf

Добавьте следующие строки между разделами <VirtualHost *:80>....</VirtualHost>.

# MOODLE
ProxyRequests Off
ProxyPreserveHost On
ProxyPass "/" "http://10.10.10.10:81/moodle/"
ProxyPassReverse "/" "http://10.10.10.10:81/moodle/"

Затем нам нужно перезапустить наш веб-сервер apache2, это можно сделать с помощью команды service apache2 restart.

Теперь нам также нужно отредактировать несколько вещей в нашем файле moodle config.php. Этот файл можно найти по адресу /var/www/html/moodle на сервере с IP-адресом (в данном случае) 10.10.10.10, если вы использовали расположение установки по умолчанию из руководств moodle.

В файле config.php мы добавляем следующие строки под объявлениями $CFG по умолчанию: Пожалуйста, не забудьте изменить все значения в соответствии с настройками вашего сервера.

$CFG->wwwroot   = 'http://public.domain.com';
$CFG->dirroot   = '/var/www/html/moodle';
$CFG->reverseproxy = true;
//$CFG->sslproxy = true; //UNCOMMENT this line if you are using SSL

Внимание: если вы не используете корневой каталог на общедоступном веб-сервере, убедитесь, что вы не используете тот же каталог, что и Moodle для этого субсервера. Например, http://public.domain.com/moodle потерпит неудачу, если moodle установлен на субсервере в /var/html/moodle, так как оба каталога равны, и прокси-сервер по какой-то причине зацикливается. Моим простым решением этой проблемы было просто перенести установку Moodle на /var/html/moodley, включая все необходимые изменения в config.php. Это исправляет все проблемы, которые у меня были.

0 голосов
/ 08 июля 2018

Лучший способ решить эту проблему - переместить установку Moodle на внутреннем хосте в корневой каталог веб-сервера.

Переместите ваш Moodle в 10.10.10.10, чтобы быть в / а не в / Moodle

Обратите внимание, что если вы будете использовать SSL на внешнем apache (рекомендуется), вы также должны добавить в свой конфиг следующую строку:

$CFG->sslproxy = true;
...