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

Как обратный прокси-сервер Odoo с помощью Apache из местоположения

У нас есть Windows 2012 R2 с Apache и обслуживающим несколько доменов. Один, в частности, используется для размещения страниц наших клиентов. Один попросил обслужить экземпляр Odoo, работающий на той же машине. Итак, мы настроили это

<VirtualHost *:443>
DocumentRoot "D:\Internet\WEB\example.com"
ServerName www.example.com
SSLEngine on
SSLCertificateFile "${CERT_HOME}/example.com/cert.pem"
SSLCertificateKeyFile "${CERT_HOME}/example.com/example.com.pem"
SSLCertificateChainFile "${CERT_HOME}/example.com/fullchain.pem"
.
.
Alias /customer1 "D:\some_google_drive_directory"  # Nothing to do. This is for another customer. There are several like this
.
.
ProxyRequests Off
<Location /odoo/>
  ProxyPass http://localhost:8069/
  ProxyPassReverse /
  ProxyHTMLEnable On  
            ProxyHTMLExtended On

            ProxyHTMLLinks  a               href
            ProxyHTMLLinks  area            href
            ProxyHTMLLinks  link            href
            ProxyHTMLLinks  img             src longdesc usemap
            ProxyHTMLLinks  object          classid codebase data usemap
            ProxyHTMLLinks  q               cite
            ProxyHTMLLinks  blockquote      cite
            ProxyHTMLLinks  ins             cite
            ProxyHTMLLinks  del             cite
            ProxyHTMLLinks  form            action
            ProxyHTMLLinks  input           src usemap
            ProxyHTMLLinks  head            profile
            ProxyHTMLLinks  base            href
            ProxyHTMLLinks  script          src for
            ProxyHTMLLinks  iframe          src  
            RequestHeader    unset  Accept-Encoding

  
  ProxyHTMLURLMap /web /odoo/web        # I´ve seen all odoo directories start with /web
  Header add referer http://localhost:8069/   
  RequestHeader set referer http://localhost:8069/  
</Location>

Экран входа в систему отображается, как и ожидалось, но не работает вообще.

Мы обнаружили, что сценарий выполняет GET и POST из / Интернет из того, что он догадывается, это сервер Odoo:

web.assets_common.js:1209 GET https://www.example.com/web/webclient/qweb?mods= 404 (Not Found)
web.assets_common.js:1209 POST https://www.example.com/web/webclient/bootstrap_translations 404 (Not Found)

Который / Интернет закодировано в сценарии, что кажется логичным

Таким образом, проблема, похоже, в том, что поскольку эти GET и POST завершились неудачно, все приложение не запускается. После входа в систему появляется просто пустой экран.

Никакие настройки Odoo не были изменены. Если мы введем правильный URL-адрес (как для прокси, так и для локального хоста), он будет работать нормально:

https://www.example.com/odoo/web/webclient/qweb?mods=
http://localhost:8069/web/webclient/qweb?mods=

Мы пробовали перезаписать

RewriteRule /web /odoo/web
LogLevel debug proxy_html:trace5

Изучив файл журнала, мы обнаружили, что правило действительно соблюдается и применяется, но помимо этого Расположение / odoo / не обрабатывается

Возможно перенаправление с / Интернет к / odoo / web / будет работа? Есть ли другие предложения или чего-то не хватает в нашей конфигурации?