Nginx
We use nginx with odoo as reverse proxy act as an intermediary between the clients and the Odoo server , and in this topic we will explain how to use nginx , ssl and reverse proxy to odoo
Now as we know , odoo is web base and that means we can access the odoo server from the internet if it has public ip address , so why we use Nginx as reverse proxy ?
Answer : because of
Reverse proxy benefits
- Load Balancing
- SSL Termination
- Caching
- Compression
- Serving Static Content
Before configure nginx to be reverse proxy to odoo you have to check the following points
- you have domain pointing to your odoo server
- you have installed nginx on your computer
- you have ssl certification installed for your domain
so to configure your odoo server with nginx follow the steps bellow
Edit nginx configuration file
open the file bellow and change odoo.example.com to your domain
/etc/nginx/sites-enabled/odoo.example.com
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoo-chat {
server 127.0.0.1:8072;
}
server {
server_name odoo.example.com;
return 301 https://odoo.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name odoo.example.com;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_dhparam /path/to/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-
AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-
AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-
AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:
ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-
SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:
ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:
AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
resolver 8.8.8.8 8.8.4.4;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
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;
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
location /longpolling {
proxy_pass http://odoo-chat;
}
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;
}
restart nginx server
sudo systemctl restart nginx
Change the binding interface
this step is optional but it's good for security , and we make it because odoo server by default listening of port 8069 on all interfaces , and by adding this step we will disable direct access to odoo server , and we can do that by adding the lines bellow inside odoo configuration file
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1
- Restart the odoo server
###
read aslo
No comments:
Post a Comment