Discussion:
Problemas con apache
Fernando Romero
2018-08-25 00:22:03 UTC
Permalink
Estoy usando proxy inverso para redireccionar una web del puerto 8069 (El
servicio correo odoo) al puerto 80.
La web levanta pero me muestra por ip y no por nombre, la llamo por el
nombre y abre el sitio pero me queda mostrando http:ip:puerto y no el
nombre del virtual host.
Esta es mi conf del apache

<VirtualHost *:80>
ServerName miweb.com
ServerAlias miweb.com
ServerAdmin ***@correo-electronico.com

LogLevel warn
ErrorLog /var/log/apache2/miweb.com.error.log
CustomLog /var/log/apache2/miweb.com.access.log combined

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8069/
ProxyPassReverse / http://localhost:8069/
</VirtualHost>

Donde "miweb.com" es lo que me tendría que mostrar.

Algo estoy haciendo mal y no me doy cuenta, si alguien me puede guiar se lo
agradecería.

Saludos
Pablo Álvarez Córdoba
2018-08-25 11:07:12 UTC
Permalink
La web levanta pero me muestra por ip y no por nombre, la llamo por el nombre y abre el sitio pero me queda mostrando http:ip:puerto y no el nombre del virtual host.
Fernando Romero
2018-08-25 11:21:36 UTC
Permalink
El sáb., ago. 25, 2018 8:07, Pablo Álvarez Córdoba <
Post by Fernando Romero
La web levanta pero me muestra por ip y no por nombre, la llamo por el
nombre y abre el sitio pero me queda mostrando http:ip:puerto y no el
nombre del virtual host.
Escribo la direccion web en el navegador y me levanta la pagina bien pero
donde escribi ejemplo midominio.com me muestra ip:puerto.
No se si me explico bien.

Saludos
Pablo Álvarez Córdoba
2018-08-25 12:00:35 UTC
Permalink
He hecho una prueba en local, por si había algún fallo.

Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en el puerto 8069, pone en los header:

Host: miweb.com

Imagino que tienes configurado en odoo que el hostname es la ip, por eso te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.

Estás poniendo ProxyPass / http://localhost:8069/ así que si desactivas ProxyPreserveHost apache enviará:
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución sea desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya que parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.

Si ejecutas curl miweb.com --dump-header - deberías ver que te está mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header "Host: miweb.com" debería volverte a dar un redirect, ya que espera que host, sea la ip.
Fernando Romero
2018-08-25 12:13:17 UTC
Permalink
El sáb., ago. 25, 2018 9:00, Pablo Álvarez Córdoba <
Post by Pablo Álvarez Córdoba
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en el
Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso
te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo ProxyPass / http://localhost:8069/ así que si desactivas
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución sea
desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya que
parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa
ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está
mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no
debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header
"Host: miweb.com" debería volverte a dar un redirect, ya que espera que
host, sea la ip.
Pablo muchas gracias por tu respuesta, en cuanto pueda lo pruebo y te
cuento.


Saludos
Fernando Romero
2018-08-25 14:58:52 UTC
Permalink
Post by Fernando Romero
Post by Pablo Álvarez Córdoba
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en
Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso
te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo ProxyPass / http://localhost:8069/ así que si desactivas
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución
sea desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya
que parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa
ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está
mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no
debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header
"Host: miweb.com" debería volverte a dar un redirect, ya que espera que
host, sea la ip.
Pablo muchas gracias por tu respuesta, en cuanto pueda lo pruebo y te
cuento.
Saludos
Reinicié el servidor odoo y funciono, muchas gracias!

Saludos
Fernando Romero
2018-08-25 22:37:55 UTC
Permalink
Post by Fernando Romero
Post by Fernando Romero
El sáb., ago. 25, 2018 9:00, Pablo Álvarez Córdoba <
Post by Pablo Álvarez Córdoba
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en
Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso
te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo ProxyPass / http://localhost:8069/ así que si
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución
sea desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya
que parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces
activa ProxyPreserveHost y configura en odoo el hostname, y ponle
miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está
mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no
debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header
"Host: miweb.com" debería volverte a dar un redirect, ya que espera que
host, sea la ip.
Pablo muchas gracias por tu respuesta, en cuanto pueda lo pruebo y te
cuento.
Saludos
Reinicié el servidor odoo y funciono, muchas gracias!
Saludos
Retomo el tema que parecía solucionado y se volvió atrás.
Lo único que hice fue modificar un modulo del erp (odoo) y volvió a lo de
antes a mostrarme la ip y no el nombre de la web

http://x.x.x.x:8069/web/database/selector
y no

miweb.com/web/database/selector.

Si escribo el nombre me trae la pagina como digo mas arriba pero me deja
mostrando la ip y no el nombre.
No se que mas tocar en el apache, alguien tuvo este problema?

Saludos y gracias
Fernando Romero
2018-08-26 01:41:33 UTC
Permalink
El 25 de agosto de 2018, 9:00, Pablo Álvarez Córdoba <
Post by Pablo Álvarez Córdoba
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en el
Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso
te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo ProxyPass / http://localhost:8069/ así que si desactivas
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución sea
desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya que
parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa
ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está
mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no
debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header
"Host: miweb.com" debería volverte a dar un redirect, ya que espera que
host, sea la ip.
Pablo aca cuando me decis "Si necesitas que odoo sepa que el hostname es
miweb.com, entonces activa ProxyPreserveHost y configura en odoo el
hostname, y ponle miweb.com."
Es que en el /etc/hosts ponga la ip publica del servidor o sea ippublica
miweb.com?

Saludos
Pablo Álvarez Córdoba
2018-08-26 12:46:17 UTC
Permalink
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
    Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo  ProxyPass / http://localhost:8069/ así que si desactivas ProxyPreserveHost apache enviará: 
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución sea desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya que parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header "Host: miweb.com" debería volverte a dar un redirect, ya que espera que host, sea la ip.
Pablo aca cuando me decis "Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com."
Es que en el /etc/hosts ponga la ip publica del servidor o sea ippublica miweb.com?
Saludos
No, no me refiero a eso.
Supuse que al instalar Odoo se le configuraba un dominio.
He buscado por internet y encontré esto:https://www.odoo.com/documentation/9.0/setup/deploy.html#https
proxy_mode = True
Prueba así.
Fernando Romero
2018-08-26 13:11:38 UTC
Permalink
El 26 de agosto de 2018, 9:46, Pablo Álvarez Córdoba <
Post by Fernando Romero
El 25 de agosto de 2018, 9:00, Pablo Álvarez Córdoba <
Post by Pablo Álvarez Córdoba
He hecho una prueba en local, por si había algún fallo.
Me funciona correctamente.
Lo que pasa es que apache al hacer la petición al servicio que corre en
Host: miweb.com
Imagino que tienes configurado en odoo que el hostname es la ip, por eso
te redirige ahí.
Prueba a configurar correctamente odoo, o a cambiar ProxyPreserveHost a Off.
Estás poniendo ProxyPass / http://localhost:8069/ así que si desactivas
Host: localhost:8069
Debes mirar qué hostname se supone que espera odoo. Quizá una solución
sea desactivar ProxyPreserveHost y poner ProxyPass / http://IP:8069/ ya
que parece que odoo espera que accedas mediante la dirección IP.
Si necesitas que odoo sepa que el hostname es miweb.com, entonces activa
ProxyPreserveHost y configura en odoo el hostname, y ponle miweb.com.
Si ejecutas curl miweb.com --dump-header - deberías ver que te está
mandando un redirect. Si ejecutas curl ipdeodoo:8069 --dump-header - no
debería darte un redirect. Si ejecutas curl -v ipdeodoo:8069 --header
"Host: miweb.com" debería volverte a dar un redirect, ya que espera que
host, sea la ip.
Pablo aca cuando me decis "Si necesitas que odoo sepa que el hostname es
miweb.com, entonces activa ProxyPreserveHost y configura en odoo el
hostname, y ponle miweb.com."
Es que en el /etc/hosts ponga la ip publica del servidor o sea ippublica miweb.com?
Saludos
No, no me refiero a eso.
Supuse que al instalar Odoo se le configuraba un dominio.
https://www.odoo.com/documentation/9.0/setup/deploy.html#https
proxy_mode = True
Prueba así.
Pablo gracias por tu respuesta, ahí modifique ese parámetro e hice las
pruebas con curl como me habias dicho de nuevo, me muestra esto


Me sigue mostrando lo mismo, investigue un poco mas y no se si es un
problema de dns, de esto no estoy muy seguro, estoy ayudando a una amiga
con esto.

Si yo consulto los dns del dominio me trae esto:

; <<>> DiG 9.9.5-9+deb8u13-Debian <<>> odooerplibre.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60904
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;odooerplibre.com. IN A
;; ANSWER SECTION:
odooerplibre.com. 3600 IN A 216.239.32.21
odooerplibre.com. 3600 IN A 216.239.34.21
odooerplibre.com. 3600 IN A 216.239.36.21
odooerplibre.com. 3600 IN A 216.239.38.21

Pero la ip publica en la que esta el erp es otra, no tendría que aparecer
en el ANSWER SECTION esa ip?

Saludos y gracias
Fabián Bonetti
2018-08-26 17:48:11 UTC
Permalink
######Servidor Debian vivo desde 2009######  Friendica > https://friendica.mamalibre.com.ar   Whatsapp libre > http://xmpp.mamalibre.com.ar  Hosting free > http://sitios.mamalibre.com.ar  Gnusocial > http://legadolibre.mamalibre.com.ar  Plus > http://mamalibre.com.ar/plus  ################################### 

-------- Mensaje original --------De: Fernando Romero <***@gmail.com> Fecha: 24/8/2018 21:22 (GMT-03:00) Para: lista-debian <debian-user-***@lists.debian.org> Asunto: Problemas con apache
Estoy usando proxy inverso para redireccionar una web del puerto 8069 (El servicio correo odoo) al puerto 80.La web levanta pero me muestra por ip y no por nombre, la llamo por el nombre y abre el sitio pero me queda mostrando http:ip:puerto y no el nombre del virtual host.Esta es mi conf del apache
<VirtualHost *:80>
 ServerName miweb.com
 ServerAlias miweb.com
 ServerAdmin ***@correo-electronico.com LogLevel warn ErrorLog /var/log/apache2/miweb.com.error.log
 CustomLog /var/log/apache2/miweb.com.access.log combined ProxyRequests Off
 ProxyPreserveHost On
 ProxyPass / http://localhost:8069/
 ProxyPassReverse / http://localhost:8069/
</VirtualHost>
Donde "miweb.com" es lo que me tendría que mostrar.
Algo estoy haciendo mal y no me doy cuenta, si alguien me puede guiar se lo agradecería.
Saludos

----
El archivo /etc/host dentro pone
127.0.0.1 miweb.com
Y proba.

Loading...