Nginx+uWSGI+Odoo 生产环境部署

odoo 高并发生产环境部署

odoo 虽然有内置的 WSGL 服务器,但是 odoo 本身也是一个标准的 WSGI 应用程序,所以可以通过第三方 WSGI 服务器来进行挂载,如 uWSGI , Gunicorn 。uWSGI 是一个由 C 语言编写的高性能 WSGI 服务器,适合应用于高并发场景的生产环境部署。接下来介绍在ubuntu 中通过 uWSGI 启动 odoo 服务。

uWSGI安装与配置

    #安装命令

    apt install uwsgi
    apt install uwsgi-plugin-python3


    # 命令行启动

    uwsgi_python3 --http-socket :9091  --wsgi-disable-file-wrapper --processes 3 --threads 2 --virtualenv /opt/odoo16/odoo16-venv --pythonpath . --wsgi-file odoo-wsgi.py
    # .ini文件启动,假设文件名称是:odoo_uwsgi.ini

    [uwsgi]
    ; 监听 HTTP 请求的端口
    http-socket = :9091
    ; 禁用 wsgi.file_wrapper
    wsgi-disable-file-wrapper = true
    ; 工作进程数
    processes = 3
    ; 每个工作进程的线程数
    threads = 2
    ; 虚拟环境路径
    virtualenv = /opt/odoo16/odoo16-venv
    ; Python 路径
    pythonpath = /opt/odoo16/odoo
    ; WSGI 入口文件
    wsgi-file = odoo-wsgi.py
    # 启动命令:uwsgi_python3 --ini odoo_uwsgi.ini

    Nginx反向代理配置


    #odoo server
    upstream odoo {
      server 127.0.0.1:9091;
    }
    upstream odoochat {
      server 127.0.0.1:8072;
    }
    map $http_upgrade $connection_upgrade {
      default upgrade;
      ''      close;
    }

    server {
        listen 80;
        server_name 192.168.1.11;

        root /var/www/html;
        #确保将 your_domain.com 替换为你的实际域名,并将 root 设置为你网站文件所在的路径。
        index index.html index.htm index.nginx-debian.html;

        # Redirect websocket requests to odoo gevent port
      location ~ /(websocket|web/image|static/) {
    # location /websocket {
        proxy_pass http://odoochat;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
      #  proxy_cookie_flags session_id samesite=lax secure;  # requires nginx 1.19.8
      }

      # Redirect requests to odoo backend server
      location / {
        # Add Headers for odoo proxy mode
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_pass http://odoo;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
      #  proxy_cookie_flags session_id samesite=lax secure;  # requires nginx 1.19.8
      }

      # common gzip
      gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
      gzip on;
    }

    视频讲解


    实施
    标签
    存档
    一行代码清除你不想看到的客户端标题中的 odoo