Help

3

Automatically choose database based on subdomain

Avatar
Timo Goosen

I'm using Odoo + Nginx as a reverse SSL proxy. I followed this guide to get it setup:

http://www.schenkels.nl/2013/01/reverse-ssl-proxy-using-nginx-with-openerp-v7/

 

I'd like to type in somessubdomain.example.com and have it redirected to the login page for that given database.  In the background this should be happening:

When I request:

somessubdomain.example.com

This should be returned https://somessubdomain.example.com

And in the background I would like this to happen: 127.0.0.1:8069/web?db=somesubdomain

 

On OpenERP 7 + Apache2 I know how to set this up , but I'm not sure how to do this with Nginx.

 

Someone refered me this guide but is not helping much: https://www.odoo.com/forum/help-1/question/domain-based-db-filter-6583

 

Hope you understand my question.  Your help would be much appreciated.

Avatar
Discard
1 Answer
3
Avatar
P4
Best Answer

I think your problem is due to the following: with the most common nginx reverse proxy I've seen on the web, all https requests for subdomains are forwarded to the same server:

http://127.0.0.1:8069

or

http://localhost:8069

that is the domain that reaches dbfilter!!

The solution I found was:

  • Add dbfilter=%d to your config file. I have tried several other options like ^%d$, and this is the only one that worked!
  • restart odoo
  • Then, for each subdomain you want to add:
    • Configure your dns so that it points to the right ip
    • Add a line to /etc/hosts with
    • 127.0.0.1 subdomain.localhost
    • Create a new site in nginx with server_name subdomain.example.com that does a proxy_pass to http://subdomain.localhost:8069
    • restart nginx
    • create the database whose name is *exactly* subdomain
1 Comment
Avatar
Discard
Avatar
Lalit Sharma
-

Hi, I tried that but that didn't work. Can you please help where I can check the issue is?