全球第一開源ERP Odoo操作手冊 使用Nginx Upstream來優化Odoo的網絡傳輸性能
1.7.1 簡介
Odoo使用werkzeug作為 web 服務的框架,性能比之前的cherrypy有了很大的改善。但無論是werkzeug還是cherrypy,都不是專門的web服務器。通常的做法是在Odoo之前加一個Nginx、Apache或其它服務器。
1.7.2 使用Nginx Upstream部署Odoo的方法。
此處假設您已經安裝好Odoo,並運行在127.0.0.1:8069
1.7.2.1 安裝Nginx
sudo apt-get install nginx
1.7.2.2 修改nginx.conf,開啟gzip壓縮
# vi /etc/nginx/nginx.conf
將下面內容中前面的註釋符
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
將下面一行前的註釋符“#”去掉,並在其後面 添加“application/javascript”
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
改後內容為:
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
是否開啟gzip,差別很大。OE首頁加載的http://127.0.0.1/web/webclient/js開啟前文件大小是1.4M ,
下面是一個完整的 nginx.conf 文件內容
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
#添加一個類型 application/javascript
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}
1.7.2.3 修改default配置文件
# vi /etc/nginx/sites-available/default
-------------------- default 文件內容---------------------------
upstream oeserver{
server 127.0.0.1:8069;
}
server {
listen 80;
server_name _;
root /usr/lib/python2.7/dist-packages/odoo/addons;
location /{
proxy_pass http://oeserver;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 3000;
}
location /longpolling/{
proxy_pass http:// 192.168.1.105 :8072/longpolling/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
上面內容中加粗並帶下劃線的部分是需要根據自己的實際情況進行修改的部分。
本例是使用的80端口來代理的Odoo服務,如果使用其它端口,如8080,修要將“listen 80;”改成listen 8080;”;另外將“proxy_set_header Host $host;”改成“proxy_set_header Host $host:8080;”。
重啟nginx服務。
# service nginx restart
現在你就可以通過直接輸入其IP地址來訪問Odoo服務了。
1.7.3 註意事項
重啟Odoo服務後,需要重啟下Nginx,此代理才能正常工作。
1.7.4 常見錯誤及解決辦法
CPU limit out,不要急著升級 CPU,修改 odoo.conf 裏的 limit_time_cpu 即可。
Nginx 504錯誤,修改Nginx配置裏的timeout時間。
Nginx 502錯誤,跟Nginx無關,修改odoo.conf裏的limit_time_real即可
文章編輯:PS Cloud——源自歐洲,連接中國。開源雲ERP,賦能成長型企業。
https://www.mypscloud.com
全球第一開源ERP Odoo操作手冊 使用Nginx Upstream來優化Odoo的網絡傳輸性能