Nginx с конфигурацией Odoo: хост не найден в восходящем потоке

#nginx #odoo

#nginx #odoo

Вопрос:

Что я должен изменить в (почти) конфигурации Nginx по умолчанию, приведенной ниже, чтобы иметь возможность открывать Odoo в http://erp.my-odoo.com , зная, что я установил DNS, erp.my-odoo.com указывающий на сервер Odoo в 192.168.0.10 ?

/etc/nginx/conf.d/odoo.conf

 # Odoo Upstreams
upstream odooserver {
    server erp.my-odoo.com:8069;
}

server {
    listen 80;
    server_name erp.my-odoo.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;


    # Proxy settings
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    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;

    # Request for root domain
    location / {
       proxy_redirect off;
       proxy_pass http://odooserver;
    }

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

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

  

Эта конфигурация выдает ошибку ниже:

 $ sudo nginx -t
nginx: [emerg] host not found in upstream "erp.my-odoo.com:8069" in /etc/nginx/conf.d/odoo.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed
  

Ответ №1:

Убедитесь, что хост erp.my-odoo.com разрешим вашим сервером, на котором работает nginx, или, если ваш nginx работает на том же сервере, что и ваше приложение Odoo, вы можете изменить восходящий поток на localhost или 127.0.0.1 .

 upstream odooserver {
  server 127.0.0.1:8069;
}
  

Комментарии:

1. После внесения этого изменения тест Nginx успешно пройден, но при открытии URL erp.my-odoo.com я перенаправляюсь на, http://odooserver/web который не разрешен ERR_NAME_NOT_RESOLVED .

2. Я не вижу ничего плохого в конфигурации nginx, можете ли вы добавить proxy_mode = True в файл конфигурации odoo, перезапустить nginx и Odoo?

3. Не уверен, что это правильный способ решить проблему, но я заменил odooserver на erp.my-odoo.com , и теперь он работает.

4. Да, не уверен, что пошло не так с вашей конфигурацией. Вы всегда можете пропустить добавление восходящего блока и передачу прокси-сервера в приложение Odoo напрямую, используя proxy_pass http://127.0.0.1:8069; , использование upstream блока не обязательно.