【Odoo 8开发教程】第二章:Odoo生产环境部署设置
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/10792977.html
一:dbfilter 数据库访问规则设置
一个odoo实例可以连接到不同的数据库实例中,但某个时间只有一个数据库为odoo实例提供服务。当一个odoo实例有多个数据库可供操作时,用户每次登录时都需要先选择一个数据库才能跳转到登陆界面,这在生产环境中会让用户产生很大的困惑。因此,我们需要在生产环境中指定一个规则,让用户只能看到一个数据库并默认连接。
在启动文件.conf中,可以通过 dbfilter(注意,无下划线) 指定一个 正则表达式 ,指定一个默认的数据库。
处理配置文件,也可以在命令行启动odoo时,通过参数 --db-filter=正则表达式 来指定一个默认数据库。
注意:对于website模块,必须指定dbfilter才能正常使用。
二:PostgreSQL 数据库连接设置
odoo与postgreSQL通过UNIX socket连接。
需要在odoo的启动配置文件.conf中配置postgreSQL的相关信息,以便odoo通过SSH连接到数据库。
db_host = 数据库ip地址 db_port = 数据库端口,默认5432 db_user = 数据库账号 db_password = 数据库秘密 db_maxconn = 数据库连接池最大容量 db_name = 指定操作的数据库,如果不指定,则在多个数据库时用户需要手动选择数据库
odoo的数据库受到超级密码保护,当在配置文件中配置了admin_passwd时,在数据库管理页面对数据库的备份、复制、删除、创建等操作都需要输入正确的admin_passwd才能继续操作。
为安全起见,一般将admin_passwd设置为随机数或者MD5加密后的字符串。
三:HTTPS 网络连接安全
odoo的数据传输和身份验证信息都需要通过https协议来保证其安全性。
我们可以使用SSL协议来加密我们的数据传输,使用Nginx作为SSL终端来实现:
1)在odoo配置文件中,启用odoo的代理模式:proxy_mode = True【注意:此时,需要odoo作为nginx反向代理的对象才行】
2)设置Ngnix反向代理,指向odoo系统的域名:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
3)将Ngnix设置成为一个HTTPS Server,并使用ssl加密传输:https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-http/
附:SSL
SSL位于应用层和传输层之间,它可以为任何基于TCP等可靠连接的应用层协议提供安全性保证。
SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
四:Builtin Server 内置的HTTP服务器
odoo包含一个内置的HTTP服务器,支持多进程来处理工作。
我们可以在配置文件中,指定进程的worker数,来更好地利用计算资源。
worker数量应该基于机器中的核心数量(可能为cron worker提供一些空间,具体取决于预测的cron工作量)
workers = 一个非0的整数
注意:当在配置中配置了workers时,就启用了多进程模式。
五:Odoo作为WSGI应用
可以将odoo部署为一个单纯的WSGI应用,此时将不可通过http访问。
在配置文件中配置:
xmlrpc = False
或启动命令时通过参数 --no-xmlrpc 禁用网络访问。
六:提供静态文件
出于开发便捷,odoo在模块下的 static/ 文件夹中提供静态文件服务,这对性能会有稍微的影响。
我们可以通过将各个模块的静态文件提取出来,放到一个专门的HTTP服务器中管理,然后拦截所有的文件请求重定向到文件服务器中。
七:安全
数据库管理页面中可以进行数据库的创建、备份、复制、还原、删除操作,这有一定风险。
1、设置admin_passwd
我们可以在配置文件中设置admin_passwd,并且该密码必须仅掌握在系统管理员手中,使用随机生成或者MD5加密过的字符串。
2、禁止访问数据库管理页面
通过Nginx代理设置,拦截所有 /web/database/* 格式的网络请求。
【Odoo 8开发教程】第二章:Odoo生产环境部署设置的更多相关文章
- [ABP教程]第二章 图书列表页面
Web应用程序开发教程 - 第二章: 图书列表页面 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开 ...
- 第二章 Odoo 12开发之开发环境准备
在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机, ...
- EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念
目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application ...
- 学习opencv中文版教程——第二章
学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生 ...
- Knockout应用开发指南 第二章:监控属性(Observables)
原文:Knockout应用开发指南 第二章:监控属性(Observables) 关于Knockout的3个重要概念(Observables,DependentObservables,Observabl ...
- Android艺术开发探索——第二章:IPC机制(下)
Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvi ...
- javascript进阶教程第二章对象案例实战
javascript进阶教程第二章对象案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过案例练习补充几个之前没有见到或者虽然讲过单是讲的不仔细的知识点. 二.具体实例 温馨提示 面向对象的知 ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
- 深度学习Tensorflow生产环境部署(上·环境准备篇)
最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...
随机推荐
- C++基础知识小记
最近在帮华为接口人研究自动化部署项目AutoDeploy,把代码发给我了,不过都是用C++写的,自己虽然在大学也学了一学期的C++不过也是很菜鸟,只是学了基本语法,还远未达到实战项目,不管怎么说就是撸 ...
- SQL 数据库加字段声明
ALTER TABLE dbo.C_TrainPlan ADD MailCost DATETIME EXECUTE sp_addextendedproperty N'MS_Description', ...
- MailBee.NET
MailBee.NET Objects 是一款为创建.发送.接收以及处理电子邮件而设计的健壮.功能丰富的.NET控件.具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加 ...
- DDD初探
领域驱动设计(DDD)对开发者来说是面向对象设计的自然进化 总的来说DDD包括两个部分: 分析部分 分析部分通常是由开发人员去和领域专家沟通业务知识,但是开发人员和领域专家是有代沟的, 为了简化沟通成 ...
- JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)
系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...
- 【github&&git】7、gitignore 修改不起作用
在git使用过程中有时会遇到修改了.gitignore文件,修改了之后发现,不能起作用,这是因为git存在缓存问题,所以做一下步骤即可: git rm -r --cached . git add . ...
- PHP FastCGI进程管理器PHP-FPM的架构
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态 ...
- webpack4 系列教程(四): 单页面解决方案--代码分割和懒加载
本节课讲解webpack4打包单页应用过程中的代码分割和代码懒加载.不同于多页面应用的提取公共代码,单页面的代码分割和懒加载不是通过webpack配置来实现的,而是通过webpack的写法和内置函数实 ...
- blfs(systemv版本)学习笔记-为桌面环境构建xorg服务
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch. ...
- python中收集函数的解包问题
收集参数的解包问题 - 把参数放入list或者字典中,直接把list/dict中的值放入收集参数中- 语法:参照案例 # 收集参数的问题 def stu(*args): print("=&q ...