CMS Odoo 10 на CentOS 7 с NGinx-ом и сертификацией

В виду повышенного спроса на данную систему управления контентом решил для себя описать максимально подробный процесс установки на сервере под управлением CentOS 7. За несколько установок столкнулся с некоторыми нюансами. Ниже — максимально подробная инструкция по установке. Подразумевается что система абсолютно новая и ничего прежде на неё не устанавливалось.
К плюсам odoo можно отнести то, что написана она на python, что сильно расширяет комьюнити разработчиков.
1 Шаг. Репозитории и одновления
Создаём репозиторий NGinx

# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

Создаём репозиторий Odoo 10

# vim /etc/yum.repos.d/odoo.repo
[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/10.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

Теперь установим EPEL репозиторий и все доступные обновлеия

# yum -y install epel-release
# yum -y update

Рекомендую проверить SELinux и если активен — отключить.

# sestatus

Отключить без перезагрузки можно так

# setenforce 0

Этого будет достаточно до следующей перезагрузки.
Что бы отключить SElinux перманентно, то нужно заменить в /etc/selinux/config

SELINUX=enforcing

на

SELINUX=disabled

2 Шаг. PostgreSQL

# yum -y install postgresql-server
# postgresql-setup initdb
# systemctl enable postgresql
# systemctl start postgresql

Шаг 3. Odoo и зависимости
Для начала установим системные зависимости

# yum -y install gcc libffi-devel python-devel openssl-devel python2-pip

Далее пакет, необходимый для экспорта в PDF формат внутри самой CMS

# rpm -Uvh http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-centos7-amd64.rpm

Установка сервера и обработка скрипта автозапуска

# yum -y install odoo
# systemctl enable odoo
# systemctl start odoo

Проверяем запустился ли процесс

# ps aux | grep odoo
odoo      5759  0.7  6.4 1286528 294516 ?      Ssl  06:58   3:59 /usr/bin/python /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log

или

# netstat -tulpn | grep 8069
tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN      5759/python

Ставим дополнительные модули

# pip install --upgrade pip pytz babel pysftp 

Шаг 4. Проксирующий Web-сервер NGinx.
С установкой совсем никаких особенностей

# yum -y install nginx
# systemctl enable nginx
# systemctl start nginx

Итоговая конфигурация NGinx с сертификатами и переадресацией на исключительно https версию

upstream oddo {
    server 127.0.0.1:8069;
}

server {
    listen      443 default;
    server_name example.biz;
    client_max_body_size 64m;
    access_log  /var/log/nginx/oddo.access.log;
    error_log   /var/log/nginx/oddo.error.log;

    ssl on;
    ssl_certificate    /etc/ssl/example.biz/ssl-bundle.crt;
    ssl_certificate_key /etc/ssl/example.biz/ssl-bundle.key;
    keepalive_timeout   60;

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_prefer_server_ciphers on;
    ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security max-age=15768000;

    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    location / {
        proxy_pass  http://oddo;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        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_set_header    X-Forwarded-Proto https;
	proxy_connect_timeout 600;
	proxy_send_timeout 600;
	proxy_read_timeout 600;
	send_timeout 600;
    }

    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://oddo;
    }
}

server {
    listen      80;
    server_name example.biz www.example.biz;

    add_header Strict-Transport-Security max-age=2592000;
    return 301 https://example.biz$request_uri;
}

server {
    listen 443;
    server_name www.example.biz;
    return 301 https://example.biz$request_uri;
    }

Проверяем и перечитываем конфигурацию

# nginx -t
# nginx -s reload

После этого можно открыть страничку домена в браузере и следовать подсказкам установщика до полной установки Odoo 10.

Добавить комментарий