Фильтрация поддоменов не работает

Я пытаюсь настроить домен таким образом, чтобы я мог использовать поддомен для доступа к базе данных. Например, если мой домен domain.com и у меня есть базы данных demo а также demo2, Тогда я смогу получить к нему доступ, написав demo.domain.com а также demo2.domain.com, Но ничего из этого не работает. Я следовал этому руководству: http://opensourceholic.com/2014/05/09/deploy-openerp-using-mod_proxy-and-mod_wsgi-on-linux-server/

После того, как я все сделал по руководству, я смог получить доступ только к OpenERP (или Odoo) в Интернете, написав domain.com, но если я напишу demo.domain.comЯ получу только это сообщение This webpage is not available,

Итак, что я сделал:

Мои файлы конфигурации apache2:

openerp.conf

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias *.domain.com // Use this if you want dbfillter on subdomain
    ErrorLog /var/log/openerp/openerp-error.log
    CustomLog /var/log/openerp/openerp-access.log combined
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPass / http://domain.com:8069/
    ProxyPassReverse / http://domain.com:8069/
    ProxyVia On
    LogLevel warn
</VirtualHost>

openerp-wsgi.conf:

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias *.domain.com // Use this if you want dbfillter on subdomain
    WSGIScriptAlias / /opt/openerp/server/openerp-wsgi.py
    WSGIDaemonProcess oe user=user group=oerp processes=2 python-path=/opt/openerp/server/ display-name=apache-openerp
    WSGIProcessGroup oe
    ErrorLog /var/log/openerp/openerp-error.log
    CustomLog /var/log/openerp/openerp-access.log combined
    <Directory /opt/openerp/server>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

мой openerp-wsgi.py конфигурация:

import openerp

#----------------------------------------------------------
# Common
#----------------------------------------------------------
openerp.multi_process = True # Nah!

# Equivalent of --load command-line option
openerp.conf.server_wide_modules = ['web']
conf = openerp.tools.config

# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)

conf['addons_path'] = '/opt/openerp/server/addons/,/opt/openerp/server/openerp/addons/'

# Optional database config if not using local socket
#conf['db_name'] = 'demo'
conf['db_host'] = '127.0.0.1'
conf['db_user'] = 'user'
conf['db_port'] = 5433
conf['db_password'] = 'password'
#conf['dbfilter'] = '%d'
#----------------------------------------------------------
# Generic WSGI handlers application
#----------------------------------------------------------
application = openerp.service.wsgi_server.application

openerp.service.server.load_server_wide_modules()

#----------------------------------------------------------
# Gunicorn
#----------------------------------------------------------
# Standard OpenERP XML-RPC port is 8069
bind = '0.0.0.0:8069'
pidfile = '.gunicorn.pid'
workers = 4
timeout = 240
max_requests = 2000

И даже после этого он все еще не работал, поэтому я добавил эту строку в /etc/hosts:

127.0.0.1 domain.com Тогда я смог получить доступ к OpenERP при вводе адреса domain.com, но только это. Если я добавлю предложенный фильтр (либо непосредственно в конфигурационном файле, либо в файле openerp-wsgi.py), то система не найдет ни одной базы данных, и я не смогу получить к ней доступ, даже в списке, не говоря уже о главной причине, по которой я делаю это - для доступа по поддомену (как написано в примере).

Так что здесь не так?

Заметка. Я пытаюсь это на Odoo v8 (ранее OpenERP).

2 ответа

Решение

Я решил, что мне нужно вручную ввести все субдомены в etc/hosts, только тогда он начинает работать, я ожидал.

У вас есть два файла virtualhost для одного домена, для одного и того же порта. Вам нужен только один файл для этого. Выберите, хотите ли вы обслуживать свой Odoo, используя mod_proxy или mod_wsgi, но не оба.

Другие вопросы по тегам