Edellisessä Odoo-blogipostauksessani virittelin Let's Encrypt SSL-sertifikaatin ja Nginx-webbipalvelimen Odoo 10:n eteen. Lopputulemana Odoo mäpättiin toimimaan niin, että tietokannan nimi = alidomainin nimi.

Nyt halusin kuitenkin konfiguroida webbiserverin niin, että usean Odoo-kannan ympäristössä tietty kantaa mäppäytyy suoraan domainiin, ei alidomainiin. Tunnustan, että minulta meni Googlaillessa aika kauan, ennen kuin sain tuon toimimaan. Onnistuihan se lopulta ja nyt minulla on samalla palvelimella useampia Odoo-kantoja, joista osa mäpätään Nginx-konfiguroinnilla subdomain-nimellä ja osa suoraan domain-nimellä.

Tämän kirjoituksen esimerkissä mäpätään "kaikki"-niminen Odoo-kanta "kaikki"-nimisellä Nginx-konfigurointifilellä toimimaan ssl-salauksella,  kirjoittipa selaimeen minkä tahansa alla olevista osoitteista:

Kaiken voi tehdä muutoin samoin kuin edellisessäkin ohjeessa, mutta Nginx-konffista on säädettävä alla olevien lihavoitujen kohtien mukaisesti:

 

upstream kaikki {

server 127.0.0.1:8069 weight=1 fail_timeout=0;

}

upstream kaikki-im {

server 127.0.0.1:8072 weight=1 fail_timeout=0;

}

## http redirects to https ##

server {

listen 80;

server_name kaikkipanee.com www.kaikkipanee.com 

# Strict Transport Security

add_header Strict-Transport-Security max-age=2592000;

rewrite ^/.*$ https://$host$request_uri? permanent;

}

server {

# server port and name

listen 443;

server_name kaikkipanee.com www.kaikkipanee.com

# Specifies the maximum accepted body size of a client request,

# as indicated by the request header Content-Length.

client_max_body_size 200m;

# add ssl specific settings

keepalive_timeout 60;

ssl on;

ssl_certificate /etc/letsencrypt/live/kaikkipanee.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/kaikkipanee.com/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

        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;

# limit ciphers

# ssl_ciphers HIGH:!ADH:!MD5;

# ssl_protocols SSLv3 TLSv1;

# ssl_prefer_server_ciphers on; 

# increase proxy buffer to handle some OpenERP web requests

proxy_buffers 16 64k;

proxy_buffer_size 128k;

#general proxy settings

# force timeouts if the backend dies

proxy_connect_timeout 600s;

proxy_send_timeout 600s;

proxy_read_timeout 600s;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

# set headers

# proxy_set_header Host $host (kommentoitu pois ja vaihdettu alla olevaan);

proxy_set_header Host kaikki.kaikkipanee.com$request_uri?;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;

# Let the OpenERP web service know that were using HTTPS, otherwise

# it will generate URL using http:// and not https://

proxy_set_header X-Forwarded-Proto https;

#proxy_redirect off (kommentoitu pois ja vaihdettu alla olevaan);

proxy_redirect http://kaikki.kaikkipanee.com/ http://kaikkipanee.com/;

proxy_buffering off;

 

location / {

proxy_pass http://kaikki;

}

location /longpolling {

proxy_pass http://kaikki-im;

}

# cache some static data in memory for 60mins.

# under heavy load this should relieve stress on the OpenERP web interface a bit.

location /web/static/ {

proxy_cache_valid 200 60m;

proxy_buffering on;

expires 864000;

proxy_pass http://kaikki;

}

}

 

Tuon lisäksi on tarkistettava etc/odoo-server.conf -filestä, että proxy_mode = True. Defaultisti se ainakin mulla oli False:

#dbfilter = .*

dbfilter = ^%d$

#list_db = True

list_db = False

#proxy_mode = False

proxy_mode = True