ODOO中通过域名来自动选择数据库

  • 时间:
  • 浏览:2
  • 来源:uu快3电脑版_uu快3和值_礼金

proxy_cache_valid 500 500m;  

server {  

server_name _;  

proxy_set_header Host $http_host;  

upstream odoo8 {  

server {  

proxy_set_header X-Forward-For $remote_addr;  

proxy_set_header Host $http_host;  

location /web/static/ {  

location /longpolling {  

expires 865000;  

这里都要看出来,机会用了nginx进行反向代理,在转到50069端口时使用了http://odoo8,很多很多odoo中取得的域名变成了odoo8,你你你你这个 难题报告 为啥办?想了看了都要在nginx方面调整配置,将客户端的域名传导到odoo中,看来朋友 遇到的难题报告 nginx都机会帮朋友 想到了,通过查询相关资料,将nginx参数调整为如下内容:

}  

upstream odoo8-im {  

def db_filter(dbs, httprequest=None):  

server 127.0.0.1:50069;  

    if d == "www" and r:  

    h = httprequest.environ.get('HTTP_HOST', '').split(':')[0]  

proxy_set_header X-Real-IP $remote_addr;  

add_header Strict-Transport-Security max-age=2595000;  

upstream odoo8 {  

通过调试,发现上边函数中的h并有的是输入的db1.xxx.cn,有时候odoo8,朋友说奇了怪了。看起来odoo8比较面熟,想到跟nginx中的某个名称相同。机会我安装了nginx进行反向代理,把所有500端口的访问重定向到了50069端口,主要参数配置如下:

}  

在时候openerp7应用中,一群人提到了通过修改源码的办法来实现,但实际体验不太好,以后看了odoo8中的代码,实际上系统一种生活就机会提供了相似的功能。

proxy_buffering on;  

}  

location / {  

server 127.0.0.1:50072;  

从以上代码都要看出,在过滤数据库名称时,系统提供了2个变量(%h,%d),%h是域名,%d是二级域名,机会二级域名是www,则%d是域名上边的每种。很多很多朋友 都要通过设计参数文件中dbfilter的内容来达到通过域名自动选用数据库的目的。

现在终于都要愉快滴跟odoo玩耍了。

proxy_pass http://odoo8;  

增加了proxy_set_header的设置,重新启动nginx,在浏览器输入http://db1.xxx.cn,odoo就进入了db1数据库,输入http://db2.xxx.cn,系统就进入了db2。

}  

安装了一2个Odoo8的测试环境,给不同的客户建立了不同的数据库,为了不要客户访问时看了其它数据库选用,都要把选用数据库的功能隐藏起来。每个客户分配一2个域名,用不同的域名来自动关联数据库。

    dbs = [i for i in dbs if re.match(r, i)]  

listen 500;  

proxy_pass http://odoo8;  

}  

proxy_pass http://odoo8;  

server 127.0.0.1:50069;  

        d = r.partition('.')[0]  

proxy_set_header X-Real-IP $remote_addr;  

    httprequest = httprequest or request.httprequest  

proxy_set_header X-Forward-For $remote_addr;  

proxy_set_header Host $http_host;  

server 127.0.0.1:50072;  

add_header Strict-Transport-Security max-age=2595000;  

}  

proxy_set_header X-Forward-For $remote_addr;  

}  

我把参数文件中的dbfilter=.*改为了dbfilter=^%d$,表示数据库的名称有时候二级域名名称。有时候我在浏览器中输入http://db1.xxx.cn ,系统并没直接跳到db1数据库,有时候进入到了初始的创建数据库页面。额,是咋回事呢?

proxy_pass http://odoo8;  

location /web/static/ {  

proxy_pass http://odoo8-im;  

    r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d', d)  

proxy_buffering on;  

proxy_cache_valid 500 500m;  

}  

}  

upstream odoo8-im {  

    d, _, r = h.partition('.')  

}  

location /longpolling {  

}  

    return dbs  

listen 500;  

proxy_pass http://odoo8-im;  

}  

proxy_set_header X-Real-IP $remote_addr;  

location / {  

server_name _;  

expires 865000;