Skip to Content
Menu
This question has been flagged

Hello,

recently I decided to secure my Odoo 8 installation adopting HTTPS.

Before the behavior of the app was all OK (no issue, except security). All at a sudden, when I configured the HTTPS proxy, I started to have missing content in my webpages, including some static images and some asynchronous calls returning a XmlHttpRequestError.

I have an installation of Odoo 8 on Ubuntu 14.04 and apache2 configured with HTTPS already on a domain ( https://www.mydomain.com/web/ ), but as one of the subfolders.

There are other subfolders ( https://www.mydomain.com/somethingelse/ ), that are configured through .conf files in apache2 to deliver contents related to CMS or DMS, etc.

In my .conf file, in the *:443 section, I have:

    ProxyPass /web http://localhost:8069/web      (this was there before)

    ProxyPassReverse /web http://localhost:8069/web      (this was there before)

    ProxyPass /web http://localhost:8072/web      (this was added after some suggestion)

    ProxyPassReverse /web http://localhost:8072/web      (this was added after some suggestion)

On my installation, I have two (2) databases for my companies. Under this scenario, I am able to:

A. Login as superuser in both the db.

B. Generate and save invoices.

C. Send the invoices to my email account.

Now, I am experiencing the following issues:

1. As soon as I login, I receive the following message:

XmlHttpRequestError Not Found
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /im_chat/init was not found on this server.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at www.mydomain.com Port 443</address>
</body></html>

and I also (but not limited to) have the following failed calls in the browser stack:

    POST https://www.mydomain.com/calendar/notify 404 (Not Found)

    POST https://www.mydomain.com/im_chat/init 404 (Not Found)

    GET https://www.mydomain.com/im_odoo_support/static/img/odoo_o_small.png 404 (Not Found)

    GET https://www.mydomain.com/im_chat/static/src/img/green.png 404 (Not Found)

This is strange because I have my Odoo 8 instance available at https://www.mydomain.com/web .


2. Once I have generated the invoices, I validate them, but I am not able to print.

In case I decide to print them using the functionality Print > Invoice on top of the invoice scree, it appears the "Loading...." image and it goes into a loop.

Instead I can send them to my email address, but when received I cannot find anymore the headers (header blank).


3. In the "Customers" page (Kanban view), the default company image doesn't show up, but I can see the company image for those where I changed the default with their own one.



Upon suggestion, I configured as shown before the 8072 port, for that kind of urls related to the bus longpooling feature in Odoo. I didn't change the port 8072. I tried to proxy those url calls to dispatch to that port in my instance. I'm talking about the longpolling_port config option that it has the default value 8072.

 

Anyone might helps?

Thank you 


Avatar
Discard
Author Best Answer

FINALLY, THIS IS MY SOLUTION:

==========================================================

Keeping in mind that I have my instance at https://www.mydomain.com/web/ , finally I have found my configuration:

<VirtualHost *:443>

.....

        ProxyPass / http://localhost:8072/

        ProxyPassReverse / http://localhost:8072/

        ProxyPass / http://localhost:8069/web/

        ProxyPassReverse / http://localhost:8069/web/

</VirtualHost>

I can load all the static images, and load all the modules on 8072.

To me it is quite confusing, as there is too much burden in searching the configuration. However, for the moment, everything works fine.

Thank you for any help received.






BEFORE I SAID THE FOLLOWING, BUT WAS NOT SOLVING MY PROBLEM:

==========================================================

Yes, I have set website.base.url=https://www.mydomain.com/web , but with no result.

I have put proxy-mode = True in /etc/odoo/odoo-server.conf.


I did already yesterday the change:

ProxyPass //im_chat http://localhost:8072/im_chat      (this was added after some suggestion)

    ProxyPassReverse /im_chat http://localhost:8072/im_chat      (this was added after some suggestion)

    ProxyPass /longpooling http://localhost:8072/longpooling      (this was added after some suggestion)

    ProxyPassReverse /longpooling http://localhost:8072/longpooling      (this was added after some suggestion)

and the result is:

    https://www.mydomain.com/calendar/notify Failed to load resource: the server responded with a status of 404 (Not Found)

    https://www.mydomain.com/im_chat/init Failed to load resource: the server responded with a status of 503 (Service Unavailable)

    https://www.mydomain.com/im_odoo_support/static/img/odoo_o_small.png Failed to load resource: the server responded with a status of 404 (Not Found)

    https://www.mydomain.com/im_chat/static/src/img/green.png Failed to load resource: the server responded with a status of 503 (Service Unavailable)


and

XmlHttpRequestError Service Unavailable


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Unavailable</title>
</head><body>
<h1>Service Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at www.mydomain.com Port 443</address>
</body></html>
Avatar
Discard
Best Answer

Did you set the proper website.base.url (or similar) in the "Technical Setting/System Parameters?

@Edit: It looks to me that setting up Odoo as a subfolder under /web does not work.

Avatar
Discard
Best Answer

Also, If you didn't set the --proxy-mode in your Odoo .conf file. Set this option to true


Regards

Avatar
Discard
Best Answer

Hi again. I'm not using apache for reverse proxy, but you have some errors. The port 8072 will be used for im_chat and longpooling urls so you need to proxy those urls to the port 8072. Like:

    ProxyPass /web http://localhost:8069/web      (this was there before)

    ProxyPassReverse /web http://localhost:8069/web      (this was there before)

    ProxyPass //im_chat http://localhost:8072/im_chat      (this was added after some suggestion)

    ProxyPassReverse /im_chat http://localhost:8072/im_chat      (this was added after some suggestion)

    ProxyPass /longpooling http://localhost:8072/longpooling      (this was added after some suggestion)

    ProxyPassReverse /longpooling http://localhost:8072/longpooling      (this was added after some suggestion)


If this answers help you please don't forget to upvote it

Avatar
Discard
Related Posts Replies Views Activity
0
Apr 24
241
2
Aug 20
22702
0
Jul 22
640
1
Jun 22
1550
1
Sep 17
4710