Openerp 6.1 使用werkzeug 作为web服务的框架,性能比之前的cherrypy 有了很大的改善。但无论是 werkzeug 还是cherrypy ,都不是专门的web服务器。通常的做法是在openerp 之前加一个 Nginx、Apache或其他服务器。下面介绍使用Nginx Upstream 部署openerp 的方法。

一 前提

此处假设您已经安装好 openerp ,并运行在 127.0.0.1:8069 

二 安装Nginx

debian/ubuntu:

1    # apt-get install nginx

redhat/centos:

1    # yum install nginx

三 配置Nginx

1、修改/etc/nginx/nginx.conf ,开启gzip 压缩

01    # vi /etc/nginx/nginx.conf
02
03 --------------nginx.conf 需修改内容节选--------------------------
04 gzip on;
05 gzip_disable "msie6";
06
07 gzip_vary on;
08 gzip_proxied any;
09 gzip_comp_level 6;
10 gzip_buffers 16 8k;
11 gzip_http_version 1.1;
12 #添加一个类型 application/javascript
13 gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 吐槽一下,是否开启gzip,差别真不小。oe 首页加载的http://127.0.0.1/web/webclient/js 开启前文件大小是 1.4M , 开启后大小是350.6 KB (通过firebug 查看)。 2、建立 openerp 配置文件 01 # touch /etc/nginx/sites-enabled/openerp
02 # vi /etc/nginx/sites-enabled/openerp
03
04 --------------------openerp 文件内容---------------------------
05
06 proxy_temp_path /tmp/nginx_proxy_temp;
07 proxy_cache_path /tmp/nginx_proxy_cache levels=1:2 keys_zone=oecache:100m inactive=3d max_size=1000m;
08
09 proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
10 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
11 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
12 proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
13
14 proxy_connect_timeout 60;
15 proxy_send_timeout 60;
16 proxy_read_timeout 3000;
17
18 upstream oeserver{
19 server 127.0.0.1:8069;
20 }
21
22 server {
23
24 server_name www.example.com;
25
26 root /var/www/openerp-6.1-1/openerp/addons;
27
28 location /{
29
30 proxy_cache oecache;
31 #proxy_cache_key "$host$request_uri$request_body";
32 proxy_cache_key $host$request_uri$request_body;
33 proxy_cache_valid 200 304 1d;
34 proxy_cache_valid any 1d;
35
36 proxy_next_upstream http_502 http_504 error timeout invalid_header;
37 proxy_pass_header Set-Cookie;
38 proxy_set_header Host $host;
39 proxy_set_header X-Real-IP $remote_addr;
40 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
41 proxy_redirect off;
42
43 proxy_pass http://oeserver;
44
45 proxy_buffering on;
46 proxy_cache_valid 1d;
47 expires 1d;
48 }
49
50 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
51 proxy_buffering on;
52 proxy_cache_valid 1d;
53 expires 1d;
54 }
55
56 } 完成 ! Nginx 此处仅仅是作为 openerp 的前端WEB服务器,Nginx 还有更大的作用是可以实现Openerp 的负载平衡。

使用Nginx Upstream 部署 OpenERP的更多相关文章

  1. Diango + uwsgi + nginx 项目部署(可外网访问)

    自己通过nginx uwsgi 部署django项目,查询了很多资料,遇到了很多问题,最终完成了部署,趁着心情愉悦,写个随笔,为曾像我一样苦寻解决方案的小伙伴们提供些思路. 安装Nginx: #安装n ...

  2. [Redmine] Centos5上安装Redmine3.0+nginx+thin部署

    项目管理的需要所以安装Redmine,其实wiki放在上面也不错的. 首先是安装,ruby应用第一次装,把坑记住. nginx, mysql是已经安装好的,只需要配置, 结合nginx的部署方式很多, ...

  3. Nginx+upstream针对后端服务器容错的运维笔记

    熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明: 一.nginx的upstream容错 1)nginx 判断节点失效 ...

  4. Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统

    Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...

  5. 解决nginx+uWSGI部署Django时遇到的static文件404的问题

    昨天是利用Django自带的runserver部署的服务器,但是由于runserver比较不稳定,因此决定采用uWSGI+nginx进行部署. 昨天已经安装好了uwsgi和nginx,使用该指令打开8 ...

  6. nginx Win下实现简单的负载均衡(1)nginx搭建部署

    快速目录: 一.nginx Win下实现简单的负载均衡(1)nginx搭建部署 二.nginx Win下实现简单的负载均衡(2)站点共享Session 三.nginx Win下实现简单的负载均衡(3) ...

  7. Tomcat+nginx+Keepalived部署实现集群

    Tomcat+nginx+Keepalived部署实现集群 环境说明: 系统:Centos-7 主机:Centos-7 x3 IP地址: 服务器1(192.168.10.102/24) 服务器2(19 ...

  8. nginx upstream 容错机制

    熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明: 一.nginx的upstream容错 1)nginx 判断节点失效 ...

  9. Nginx + uWSGI部署中的一些小坑

    1.invalid host in upstream报错 重新启动nginx : sudo /etc/init.d/nginx restart 原因是在配置负载均衡nginx.conf配置文件时,发现 ...

随机推荐

  1. ARM FPGA Extended Memory Interface

    Connect a ARM Microcontroller to a FPGA using its Extended Memory Interface (EMI) http://elinux.org/ ...

  2. 实效云计算用户组(ECUG) 与 阿里云

    http://www.ecug.org/ http://www.aliyun.com/   阿里云

  3. sql语句分组/排序/计算总数/连接等sql语句书写

    1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接.最后产后组合信息. 表连接是通过join连接的.表连接说白了就是产生一个大表.表连接也都是用于查询上的 ...

  4. 使用stream(流)实现多表数据传输

    使用stream(流)实现多表数据传输 几乎所有的TCP和HTTP通信控件都支持stream(流)的传输. 使用stream(流)是可以实现多表数据传输的. 但这需要自定义协议了: 合并后的strea ...

  5. UML:概要设计,用什么画我的类图?

    背景 做过需求之后,很少使用 UML 画概要设计,这几天尝试的用了几个工具,最总还是选择了 VisualStudio. Edraw 详细信息很难编辑,如:签名. Viso 添加成员太麻烦了. Visu ...

  6. Kafka开发环境搭建(五)

    如果你要利用代码来跑kafka的应用,那你最好先把官网给出的example先在单机环境和分布式环境下跑通,然后再逐步将原有的consumer.producer和broker替换成自己写的代码.所以在阅 ...

  7. NLP十大里程碑

    NLP十大里程碑 2.1 里程碑一:1985复杂特征集 复杂特征集(complex feature set)又叫做多重属性(multiple features)描写.语言学里,这种描写方法最早出现在语 ...

  8. UVA 400 (13.08.05)

     Unix ls  The computer company you work for is introducing a brand new computer line and is developi ...

  9. C++11中万能的可调用类型声明std::function<...>

    在C++11中,callable object 包括传统C函数,C++成员函数,函数对象(实现了()运算符的类的实例),lambda表达式(特殊函数对象)共4种.程序设计,特别是程序库设计时,经常需要 ...

  10. Android Notification实现推送消息过程中接受到消息端有声音及震动及亮屏提示

    在Android Notification状态栏通知一文中,简单实现了消息的推送效果,这里就接着上文说一下,当用户接受到消息时的提示效果 // 5-增加震动及声音及亮屏 notification.de ...