Odoo 설치 · 5 min read · Sep 29, 2025

CentOS에 Nginx로 Odoo 설치하기

Odoo는 자재 및 창고 관리, 인사, 재무, 회계, 판매, 재고 및 기타 많은 기업 기능을 포함하여 회사의 기본 요구 사항을 관리하는 데 사용되는 오픈 소스 ERP 및 CRM 시스템입니다. Python으로 구축되었으며 PostgreSQL을 데이터베이스로 사용합니다. 최신 Odoo 14 버전은 새로운 웹사이트 빌더, 새로운 비즈니스 인텔리전스 도구, 새로운 및 개선된 재고 및 MRP 메뉴 등 유용한 기능을 제공합니다.

이 튜토리얼에서는 CentOS 8에서 Nginx와 함께 Odoo 14를 설치하는 방법을 보여줍니다.

전제 조건

  • CentOS 8에서 실행되는 서버.
  • 서버 IP를 가리키는 유효한 도메인 이름.
  • 서버에 구성된 루트 비밀번호.

시작하기

시작하기 전에 시스템에 Python, wkhtmltopdf 및 기타 필요한 종속성을 설치해야 합니다. 다음 명령을 실행하여 모두 설치합니다:

dnf install python3 redhat-rpm-config libxslt-devel bzip2-devel openldap-devel python3-devel git gcc libjpeg-devel freetype-devel curl unzip -y  
dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

모든 종속성이 설치되면 다음 단계로 진행할 수 있습니다.

PostgreSQL 설치 및 구성

Odoo는 PostgreSQL을 데이터베이스 백엔드로 사용합니다. 따라서 시스템에 설치해야 합니다. 다음 명령을 실행하여 PostgreSQL을 설치합니다:

dnf install postgresql postgresql-server postgresql-contrib -y

PostgreSQL이 설치되면 다음 명령으로 데이터베이스를 초기화합니다:

postgresql-setup initdb

다음과 같은 출력이 표시되어야 합니다:

WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

다음으로 PostgreSQL 서비스를 시작하고 시스템 재부팅 시 시작하도록 활성화합니다:

systemctl start postgresql  
systemctl enable postgresql

다음으로 다음 명령으로 Odoo용 새 사용자를 생성합니다:

su - postgres -c "createuser -s odoo14"

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Odoo 14 설치

Odoo를 독립 실행형 사용자로 설치하고 실행하는 것이 좋습니다. 다음 명령으로 Odoo용 새 사용자를 생성할 수 있습니다:

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

참고: Odoo 사용자와 PostgreSQL 사용자는 동일해야 합니다.

다음으로 Odoo 14 사용자로 전환하고 다음 명령으로 Odoo 14의 최신 버전을 다운로드합니다:

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

다운로드가 완료되면 odoo14 디렉토리로 변경하고 다음 명령으로 새로운 Python 가상 환경을 생성합니다:

cd /opt/odoo14  
python3 -m venv odooenv

다음으로 다음 명령으로 가상 환경을 활성화합니다:

source odooenv/bin/activate

다음으로 다음 명령으로 다른 Python 종속성을 설치합니다:

(odooenv) [odoo14@centos8 ~]$ pip3 install wheel  
(odooenv) [odoo14@centos8 ~]$ pip3 install -r odoo14/requirements.txt

다음으로 가상 환경에서 비활성화하고 Odoo 사용자에서 종료합니다:

(odooenv) [odoo14@centos8 ~]$ deactivate  
exit

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Odoo 14 구성

다음으로 Odoo 14 애드온을 저장할 디렉토리를 생성해야 합니다. 다음 명령으로 생성할 수 있습니다:

mkdir /opt/odoo14/odoo14-custom-addons

다음으로 애드온 디렉토리에 적절한 소유권을 설정합니다:

chown -R odoo14:odoo14 /opt/odoo14/odoo14-custom-addons

다음으로 Odoo 14용 로그 디렉토리 및 파일을 생성하고 적절한 소유권을 설정합니다:

mkdir /var/log/odoo14  
touch /var/log/odoo14/odoo14.log  
chown -R odoo14: /var/log/odoo14/

다음으로 Odoo 14 구성 파일을 생성합니다:

nano /etc/odoo14.conf

다음 줄을 추가합니다:

[options]
; This is the password that allows database operations:
admin_passwd = your_master_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
xmlrpc_port = 8069
; longpolling_port = 8072
logfile = /var/log/odoo14/odoo14.log
logrotate = True
addons_path = /opt/odoo14/odoo14/addons,/opt/odoo14/odoo14-custom-addons

작업이 완료되면 파일을 저장하고 닫습니다.

Odoo 14용 Systemd 유닛 파일 생성

다음으로 Odoo 14 서비스를 관리하기 위해 systemd 서비스 파일을 생성해야 합니다. 다음 명령으로 생성할 수 있습니다:

nano /etc/systemd/system/odoo14.service

다음 줄을 추가합니다:

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

파일을 저장하고 닫은 후 다음 명령으로 systemd 데몬을 다시 로드합니다:

systemctl daemon-reload

다음으로 Odoo 14 서비스를 시작하고 시스템 재부팅 시 시작하도록 활성화합니다:

systemctl start odoo14  
systemctl enable odoo14

이제 다음 명령으로 Odoo 14 서비스의 상태를 확인할 수 있습니다:

systemctl status odoo14

다음과 같은 출력이 표시되어야 합니다:

? odoo14.service - Odoo14
   Loaded: loaded (/etc/systemd/system/odoo14.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-01 06:29:56 EDT; 5s ago
 Main PID: 26505 (python3)
    Tasks: 4 (limit: 25014)
   Memory: 91.8M
   CGroup: /system.slice/odoo14.service
           ??26505 /opt/odoo14/odooenv/bin/python3 /opt/odoo14/odoo14/odoo-bin -c /etc/odoo14.conf

May 01 06:29:56 centos8 systemd[1]: Started Odoo14.

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Odoo 14용 Nginx 설치 및 구성

이 시점에서 Odoo 14가 설치되고 실행되고 있습니다. 이제 Odoo에 대한 리버스 프록시로 Nginx를 구성하는 것이 좋습니다.

먼저 다음 명령으로 Nginx 패키지를 설치합니다:

dnf install nginx -y

Nginx가 설치되면 다음 명령으로 새로운 Nginx 가상 호스트 구성 파일을 생성합니다:

nano /etc/nginx/conf.d/odoo14.conf

다음 줄을 추가합니다:

upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name odoo.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $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;

    # log files
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    # Handle longpoll requests
    location /longpolling {
        proxy_pass http://odoochat;
    }

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://odoo;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

파일을 저장하고 닫은 후 다음 명령으로 Nginx의 구문 오류를 확인합니다:

ginx -t

다음과 같은 출력이 표시되어야 합니다:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

다음으로 Nginx 서비스를 시작하고 시스템 재부팅 시 시작하도록 활성화합니다:

systemctl start nginx  
systemctl enable nginx

다음 명령으로 Nginx를 확인할 수도 있습니다:

systemctl status nginx

다음과 같은 출력이 표시되어야 합니다:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-01 06:31:19 EDT; 3s ago
  Process: 26627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 26625 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 26623 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 26628 (nginx)
    Tasks: 3 (limit: 25014)
   Memory: 5.3M
   CGroup: /system.slice/nginx.service
           ??26628 nginx: master process /usr/sbin/nginx
           ??26629 nginx: worker process
           ??26630 nginx: worker process

May 01 06:31:19 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
May 01 06:31:19 centos8 nginx[26625]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
May 01 06:31:19 centos8 nginx[26625]: nginx: configuration file /etc/nginx/nginx.conf test is successful
May 01 06:31:19 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

다음으로 Odoo 14 구성 파일을 편집하고 프록시 모드를 활성화합니다:

nano /etc/odoo14.conf

다음 줄을 추가합니다:

proxy_mode = True

파일을 저장하고 닫은 후 다음 명령으로 Odoo 14 서비스를 재시작하여 변경 사항을 적용합니다:

systemctl restart odoo14

방화벽 구성

다음으로 방화벽을 통해 포트 80을 허용해야 합니다. 다음 명령으로 허용할 수 있습니다:

firebase-cmd --permanent --add-service=http

다음으로 변경 사항을 적용하기 위해 방화벽을 다시 로드합니다:

firebase-cmd --reload

작업이 완료되면 다음 단계로 진행할 수 있습니다.

Odoo 14 대시보드에 접근하기

이제 웹 브라우저를 열고 URL http://odoo.example.com을 사용하여 Odoo 14 웹 인터페이스에 접근합니다. 다음 페이지로 리디렉션됩니다:

Odoo 마스터 비밀번호, 데이터베이스를 제공하고 Create database 버튼을 클릭합니다. 다음 페이지에서 Odoo 14 대시보드를 볼 수 있어야 합니다:

결론

축하합니다! CentOS 8에서 Nginx와 함께 Odoo 14 ERP를 성공적으로 설치했습니다. 이제 Odoo를 생산 환경에 구현하고 생산성을 높일 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.