Hướng Dẫn Cài Đặt Autocad R14 / TOP #10 Xem Nhiều Nhất & Mới Nhất 3/2022 # Top View | https://bacxiunong.com

— Bài mới hơn —
Odoo 14 hoàn toàn có thể được setup theo nhiều cách khác nhau – tùy thuộc vào thói quen và công nghệ tiên tiến hiện tại mà bạn đang sử dụng là gì. Cách dễ nhất và nhanh gọn nhất để setup Odoo chính là trải qua sử dụng Odoo apt repository .

Cài đặt Odoo trong môi trường ảo hóa, hoặc triển khai dưới dạng docker container – cho phép bạn quản lý các ứng dụng và chạy nhiều instance Odoo khác nhau ngay trên cùng một hệ thống.

Trong bài viết này, mình sẽ lý giải cho bạn cách setup và tiến hành Odoo 14 trên môi trường tự nhiên python ảo hóa trên Ubuntu 20.04. Mình sẽ tải về Odoo từ repository chính thức trên github và sử dụng Nginx làm reverse proxy .
Hướng dẫn setup

$ sudo apt update $ sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Tạo thông tin tài khoản system user

Chạy Odoo dưới tài khoản root không được cho phép vì rủi ro về mặt security khá lớn. Mình sẽ tạo một system user và có group với thư mục home /opt/odoo14 – được sử dụng để chạy dịch vụ Odoo 14.

$ sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14

Bạn hoàn toàn có thể đặt tên user dùng bất kỳ tên nào bạn muốn cũng được, miễn sao tạo tên user giống với user PostgreSQL là được .
Cài đặt và thông số kỹ thuật PostgreSQL
Odoo sử dụng PostgreSQL để làm backend database. PostgreSQL có sẵn trong repository tiêu chuẩn của Ubuntu sẵn rồi, nên để setup PostgreSQL, những bạn chỉ cần triển khai chạy câu lệnh sau :

$ sudo apt install postgresql

Sau khi quy trình thiết lập đã triển khai xong, những bạn hoàn toàn có thể tạo thông tin tài khoản PostgreSQL có cùng tên với thông tin tài khoản system user mà bạn đã tạo trước đó. Trong ví dụ này, thông tin tài khoản cần tạo là “ odoo14 ” :

$ sudo su - postgres -c "createuser -s odoo14"

Cài đặt wkhtmltopdf

wkhtmltopdf là một tập các công cụ command-line mã nguồn mở phục vụ cho mục đích rendering các trang HTML sang dạng PDF và các định dạng hình ảnh phổ biến. Để in các trang report dạng PDF trong Odoo, bạn sẽ cần phải cài đặt package wkhtmltopdf. Phiên bản wkhtmltopdf mình khuyến nghị bạn là ” 0.12.5 ” – có thể được download từ github.

$ sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb

Sau khi đã tải về file deb về rồi, setup bằng câu lệnh sau :

$ sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb

Hướng dẫn thiết lập và thông số kỹ thuật Odoo 14

Mình sẽ cài đặt Odoo 14 trong môi trường tách biệt với ” Python virtual environment “.

Đầu tiên, chuyển sang sử dụng user ” odoo14

$ sudo su - odoo14

Clone source code Odoo 14 từ github về :

$ git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Tạo Python virtual environment cho Odoo14

$ cd /opt/odoo14 $ python3 -m venv odoo-venv

Active môi trường tự nhiên ảo hóa

$ source odoo-venv/bin/activate

Cài đặt những module python thiết yếu với pip3

(venv) $ pip3 install wheel (venv) $ pip3 install -r odoo/requirements.txt

Sau khi đã chạy xong những câu lệnh trên, để deactive môi trường tự nhiên ảo hóa, bạn hoàn toàn có thể gõ câu lệnh sau :

(venv) $ deactivate

Tạo ra một thư mục mới để chứa những addons third-party .

$ mkdir /opt/odoo14/odoo-custom-addons

Mình sẽ thêm thư mục này vào tham số ” addons_path “. Tham số này định nghĩa một danh sách các thư mục mà Odoo sẽ tìm kiếm để sử dụng các modules.

Switch qua sử dụng user root .
Tạo file thông số kỹ thuật với nội dung sau :

$ vi /etc/odoo14.conf

Description=Odoo14 Requires=postgresql.service After=network.target postgresql.service WantedBy=multi-user.target

Reload daemon lại để thông tin cho systemd biết có file unit service mới .

$ sudo systemctl daemon-reload

Khởi chạy service Odoo và kích hoạt nó khi khởi động mạng lưới hệ thống .

$ sudo systemctl enable --now odoo14

Xác nhận lại trạng thái service xem nó đã chạy chưa

$ sudo systemctl status odoo14

Khi chạy câu lệnh trên, nếu bạn nhận được ouput có dạng như sau thì nghĩa là Odoo service đang active và running .

Output odoo14.service - Odoo14 Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor pset: enabled) Active: active (running) since Fri 2022-10-16 19:05:32 UTC; 3s ago ...

$ sudo journalctl -u odoo14

Kiểm tra việc thiết lập

Mở trình duyệt web của bạn lên, và truy cập vào địa chỉ có dạng như sau: http://localhost:8069

Giả sử quy trình setup Odoo diễn ra thông thường và thành công xuất sắc thì bạn sẽ thấy màn hình hiển thị máy tính của mình có dạng như sau :
Cấu hình Nghinx làm proxy server sử dụng SSL
Mặc định web service Odoo chỉ giải quyết và xử lý traffic trải qua giao thức HTTP. Để tiến hành Odoo trở nên bảo đảm an toàn hơn, mình sẽ thiết lập Nginx thành proxy server sử dụng SSL để giải quyết và xử lý traffic trải qua https .
NginX Proxy server sẽ mã hóa và giải thuật SSL, nghĩa là proxy ( nginx ) sẽ giải quyết và xử lý luồng traffic trải qua kênh liên kết TLS bảo đảm an toàn – bảo vệ tài liệu được truyền tải trên internet của bạn sẽ không bị nghe trộm ( man-in-the-middle ). Khi sử dụng reverse proxy – sẽ phân phối cho bạn rất nhiều quyền lợi khác nhau như : Load Balancing, SSL, Caching, compssion, static file, …
Để làm được như vậy, bạn cần phải phân phối được 1 số ít nhu yếu sau :

  • Domain name trỏ tới địa chỉ IP public
  • Cài đặt nginx trên server rồi
  • Cài đặt chứng chỉ SSL. Có thể sử dụng Let’s encrypt for free

Mở file domain server block lên

$ vi nano /etc/nginx/sites-enabled/example.com

Sau đó, dán nội dung bên dưới vào file trên – là file config thiết lập SSL, điều hướng HTTP sang HTTPS, chuyển WWW sang non-WWW, cache static file, và enable nén GZIP. Giả sử mình có domain là example.com
Sau khi lưu file trên rồi, restart lại nginx .

$ systemctl restart nginx

Tiếp theo, mình sẽ thiết lập Odoo sử dung proxy. Đầu tiên, mở file thông số kỹ thuật và thêm vào dòng sau đây :

proxy_mode = True

Restart lại Odoo để những biến hóa được vận dụng .

$ systemctl restart odoo14

Ở đây, reverse proxy đã được thông số kỹ thuật rồi, và bạn hoàn toàn có thể truy vấn Odoo trải qua domain https://example.com rồi đấy .
Thay đổi binding interface
Bước này hoàn toàn có thể không thiết yếu lắm, nhưng nó là một security practice .

Mặc định, Odoo server lắng nghe trên port 8069 trên tất cả interface. Để disable truy cập trực tiếp tới Odoo server, bạn có thể block port 8069 trên tất cả public interface hoặc ép Odoo chỉ lắng nghe trên các local interface.

Mình sẽ thông số kỹ thuật Odoo lắng nghe trên localhost. Mở file thông số kỹ thuật lên và thêm vào 2 dòng sau vào cuối file .

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Lưu file thông số kỹ thuật lại và restart Odoo server để vận dụng những đổi khác ngay lập tức .

$ systemctl restart odoo14

Enable multiprocessing trên Odoo
Mặc định, Odoo hoạt động giải trí theo chính sách multithreading. Khi tiến hành trên production, thường người ta sẽ thiết lập để Odoo chạy theo chính sách multiprocessing để tận dụng tài nguyên CPU trên server một cách hiệu suất cao .

Để enable multiprocessing, bạn cần sửa cấu hình Odoo và thiết lập con số khác 0 vào phần number worker. Số worker được tính toán dựa trên số core CPU trong hệ thống và lượng RAM khả dụng.

Theo tài liệu được Odoo công bố, để tính toán số worker và dung tích RAM thiết yếu – bạn hoàn toàn có thể sử dụng công thức tính như sau :
Công thức thống kê giám sát worker

  • Số worker tối đa = (cpu_system * 2) + 1
  • 1 worker có thể phục vụ cho khoảng 6 user cùng lúc.
  • Cron worker cũng cần sử dụng CPU

Công thức đo lường và thống kê lượng RAM thiết yếu

  • Giả sử mình sẽ coi 20% tất cả các requests là những request nặng và 80% còn lại là những requests nhẹ hơn. Các requests nặng sử dụng khoảng 1GB RAM trong khi những request nhẹ còn lại chỉ sử dụng khoảng 150MB RAM.
  • Lượng RAM cần thiết = số_worker * ( (tỉ_lệ_worker_xử_lý_request_nhẹ * lượng_ram_ước_tính_sử_dụng_bởi_worker_xử_lý_request_nhẹ) + (tỉ_lệ_worker_xử_lý_request_nặng * lượng_ram_ước_tính_sử_dụng_bởi_worker_xử_lý_request_nặng) )

Nếu bạn không biết có bao nhiêu CPU trên mạng lưới hệ thống của mình, bạn hoàn toàn có thể sử dụng câu lệnh sau để kiểm tra :

$ grep -c ^processor /proc/cpuinfo

Giả sử, mạng lưới hệ thống của mình có CPU 4 cores, 8GB RAM và khoảng chừng 30 user Odoo .

  • 30 users / 6 = 5 (5 là số worker cần thiết theo lý thuyết)
  • (4 * 2) + 1 = 9 (9 là số worker tối đa theo lý thuyết)

Dựa trên công thức thống kê giám sát trên, bạn hoàn toàn có thể sử dụng 5 worker + 1 worker cho cron worker, nghĩa là sẽ cần tổng số 6 worker .
Tính lượng RAM dựa trên số worker :

RAM = 6 * (( 0.8 *150 ) + ( 0.2 *1024 ) ) ~= 2 GB RAM

Để chuyển sang chính sách multiprocessing, mở file thông số kỹ thuật và append giá trị đã được giám sát như sau :

$ vi /etc/odoo14.conf

Dán đoạn code sau vào :
Restart lại Odoo service để vận dụng những đổi khác trên mạng lưới hệ thống :

$ systemctl restart odoo14

Phần còn lại của tài nguyên mạng lưới hệ thống sẽ được sử dụng bởi những dịch vụ khác chạy trên mạng lưới hệ thống này. Trong bài viết này, mình đã setup Odoo với PostgreSQL và Nginx trên cùng một server .
Kết luận
— Bài cũ hơn —

Source: https://bacxiunong.com
Category: Blog

Related Posts

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *