Help

0

Link tracker - could my reverse proxy be interfering with the total tally of visits to links I have setup? (Odoo thinks it is the same visitor each time?)

Avatar
Nathan Hewett

Hello- I am having problems with the link tracker on my odoo instance. Currently, I have 5 links set up that it is supposed to keep track of. The links work great, but it's only tallying from a value of "0" to "1" and not going higher than that. I suspect that it has something to do with my reverse proxy setup.

I have 1 public IP that is shared amongst my house. Currently, all incoming requests go to a server running ISPconfig3. I created a "website" within ISPconfig and have it setup to proxy_pass all requests with my odoo's domain name over to my odoo instance. I included the following code in the nginx config file:

client_max_body_size 100m;
port_in_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Front-End-Https On;
proxy_set_header X-Real-IP $remote_addr;


My odoo instance is also running nginx as a reverse proxy so that I am not required to use the port number. My config file there looks like this..

 upstream oddo {
    server 127.0.0.1:8069 weight=1 fail_timeout=3000;
}
server {
    listen 443 default;
    server_name MYDOMAIN.com;
    access_log /var/log/nginx/oddo.access.log;
    error_log /var/log/nginx/oddo.error.log;
    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
    keepalive_timeout 60;
    ssl_ciphers HIGH:!ADH:!MD5;
    ssl_protocols SSLv3 TLSv1;
    ssl_prefer_server_ciphers on;
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;
    client_max_body_size 100m;
    location / {
    	proxy_redirect off;
        proxy_pass http://oddo;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_set_header Host $host;
        proxy_set_header X-Forward-Proto $scheme;
        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;
    }
    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_redirect off;
        proxy_pass http://oddo;
    }
      gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
      gzip on;
}
server {
    listen 80;
    server_name MYDOMAIN.com;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$host$request_uri? permanent;
    client_max_body_size 100m;
}

I'm definitely not an expert, but I'm guessing odoo see's every request as coming from itself as loopback instead of the real source IP which is why it's not tallying additional hits??

Any ideas of where I went wrong?

Thanks for the help!!

Nate

2 Comments
Avatar
Discard
Avatar
Marcel
-

Hey Nathan,

thank you very much for your post. 

It helped me to identify the proxy as a possible problem. 

After forwarding the real IP to odoo, I can see the client IP at the odoo logs, but the count doesn't raise at all.

I really do not know whats the Problem.

Avatar
Jonathan Canales
-

Awesome Nathan, thanks for your post. 

1 Answer
1
Avatar
Nathan Hewett
Best Answer

[SOLVED!] The solution to this post was answered on a different forum but I thought I'd put the answer here as well. All I had to do was insert the following code into my odoo configuration file: "proxy_mode = True"

Avatar
Discard