Amuleweb en apache proxy

¿Algo falla o no sabes como funciona? Pide ayuda aquí!
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Vaya por delante que mi problema no está tan relacionado con Raspbian como con el propio Apache.
Sólo pregunto por si alguien del foro tiene idea de cómo manejar estas cosas :D

Veamos, tengo configurado amule en Raspbian con su respectivo gui, demonio y frontal web. Todo funciona como debe excepto una cosa, que no doy con ella. Lo que pretendo es realizar un reverse proxy en Apache para el tema web, principalmente por dos motivos:
- Utilizar el puerto 80. Así me evito abrir un puerto más en el router.
- Utilizar un formato carpeta en la url, en lugar del puerto.

Total, que en mi Apache he añadido un par de líneas para resolver este asunto:

Código: Seleccionar todo

    ProxyPass /amule/ http://localhost:4711/
    ProxyPassReverse /amule/ http://localhost:4711/
Todo bien, sin problema. Si accedo a mi ip pública http://dominio/amule/ accedo a mi Raspbian y todo bien.
Mi duda/pregunta/ignorancia viene por un "detallito". Si en mi navegador escribo esa misma dirección sin la barra final, en plan http://dominio/amule ..., se va todo a la porra. Error 404 y ni carga la página.

Tengo la impresión de que me falta alguna configuración adicional en Apache. Apostaría por alguna RewriteRule, pero siguiendo unos cuantos tutos sólo he llegado a que cargue malamente la página de inicio (por algún problema de rutas no me salen imágenes ni me deja logarme).

Pregunta. Alguien ha hecho algo parecido a lo que pretendo? Voy muy desencaminado?
Saludos!
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

En la config de apache indicas una regla para "/amule/", con barra delante y detrás.
Por eso, cuando metes una dirección sin barra, la regla no coincide y no se ejecuta.
Con apache puedes usar un rewrite antes de esas dos líneas:

Código: Seleccionar todo

RewriteEngine on 
RewriteRule ^/amule$ /amule/ [R]
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Gracias tío!
Ya había probado eso en alguno de mis intentos. Por alguna razón que no sé trazar, no me funciona ...

En el navegador, pantallazo ...

Código: Seleccionar todo

Not Found
The requested URL /amule was not found on this server.
Apache/2.4.10 (Raspbian) Server at dominio Port 80
En los logs, poco más o menos lo mismo:

Código: Seleccionar todo

...
IP - - [19/Mar/2018:09:41:25 +0100] "GET /amule HTTP/1.1" 404 511 "-" "Mozilla/5.0 (Windos NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
IP - - [19/Mar/2018:09:41:28 +0100] "GET /amule/ HTTP/1.1" 200 1946 "-" "Mozilla/5.0 (Winows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
pi@raspberrypi:/var/log/apache2 $
Se te ocurre qué puedo tener mal?
Saludos!
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Código: Seleccionar todo

GET /amuleweb HTTP/1.1" 404
Pues eso significa que no se está aplicando el rewrite, o bien no está habilitado el mod_rewrite a nivel global.
¿Puedes confirmarlo?
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Te doy toda la razón. A mí también me parece que se me escapa algo, pero no sé por dónde mirarlo.
El módulo lo tengo habilitado:

Código: Seleccionar todo

sudo a2enmod rewrite
Module rewrite enabled
También he leído que se pueden utilizar las reglas en archivos .htaccess, pero yo las tengo en un virtual host: /etc/apache2/sites-available/amule.conf

Código: Seleccionar todo

RewriteEngine on
RewriteRule ^/amule$ /amule/ [R] 
ProxyPass /amule/ http://localhost:4711/
ProxyPassReverse /amule/ http://localhost:4711/
Que luego habilito:

Código: Seleccionar todo

sudo a2ensite amule.conf
Site amule already enabled
Sigo pensando que el problema es que tengo poca idea de Apache :sii
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Ni que decir tiene que has reiniciado apache después de añadir la configuración del rewrite, ¿no?
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Jajjaja. Sí, a cada cambio que hago en el conf le doy a un 'sudo service apache2 reload'.
Acabo de darle con restart para salir de dudas, pero sigue haciendo lo mismo.
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Vale, perdona por la pregunta, es que prefiero no dar nada por hecho, por si acaso.
Voy a echarle un ojo más despacio (luego, cuando no esté currando)
¿Te importa compartir el amule.conf completo?
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Jajaja. No hay problema.
El amule.conf del apache (/etc/apache2/sites-available/amule.conf) ya lo tienes arriba:

Código: Seleccionar todo

RewriteEngine on
RewriteRule ^/amule$ /amule/ [R] 
ProxyPass /amule/ http://localhost:4711/
ProxyPassReverse /amule/ http://localhost:4711/

El amule.conf "gordo" (/home/pi/.aMule/amule.conf) es éste:

Código: Seleccionar todo

[eMule]
AppVersion=2.3.1
Nick=http://www.aMule.org
NewVersionCheck=0
StartupMinimized=0
ConfirmExit=0
EnableTrayIcon=0
MinToTray=0
ToolTipDelay=1
VideoPlayer=
MaxDownload=0
MaxUpload=0
SlotAllocation=2
Port=4662
UDPEnable=1
UDPPort=4672
UPnPEnabled=0
UPnPTCPPort=50000
Address=
MaxSourcesPerFile=300
MaxConnections=500
ConnectToKad=1
ConnectToED2K=1
Autoconnect=1
Reconnect=1
RemoveDeadServer=1
DeadServerRetry=3
Serverlist=0
AddServerListFromServer=0
AddServerListFromClient=0
Scoresystem=1
SmartIdCheck=1
SafeServerConnect=0
AutoConnectStaticOnly=0
ManualHighPrio=0
ICH=1
AICHTrust=0
AddNewFilesPaused=0
DAPPref=1
PreviewPrio=0
StartNextFile=0
StartNextFileSameCat=0
StartNextFileAlpha=0
AllocateFullFile=0
CheckDiskspace=1
MinFreeDiskSpace=1
UAPPref=1
IncomingDir=/media/pi/PATRIOT/mldonkey/Incoming
TempDir=/media/pi/PATRIOT/mldonkey/Temp
ShareHiddenFiles=0
StatGraphsInterval=3
StatsAverageMinutes=5
VariousStatisticsMaxValue=100
DownloadCapacity=300
UploadCapacity=100
statsInterval=30
MaxConnectionsPerFiveSeconds=20
FileBufferSizePref=16
QueueSizePref=50
ServerKeepAliveTimeout=0
ShowInfoOnCatTabs=1
ShowVersionOnTitle=0
ShowOverhead=0
VerticalToolbar=0
GeoIPEnabled=1
3DDepth=5
AutoSortDownloads=0
SeeShare=2
IPFilterURL=
IPFilterAutoLoad=1
FilterLevel=127
FilterLanIPs=1
ParanoidFiltering=1
IPFilterSystem=0
OnlineSignature=0
OnlineSignatureUpdate=5
OSDirectory=/home/pi/.aMule/
FilterMessages=1
FilterAllMessages=0
MessagesFromFriendsOnly=0
MessageFromValidSourcesOnly=1
FilterWordMessages=0
MessageFilter=
ShowMessagesInLog=1
FilterComments=0
CommentFilter=
AdvancedSpamFilter=1
MessageUseCaptchas=1
Language=
SplitterbarPosition=75
YourHostname=
DateTimeFormat=%A, %x, %X
AllcatType=0
ShowAllNotCats=0
SmartIdState=0
DropSlowSources=0
KadNodesUrl=http://download.tuxfamily.org/technosalad/utils/nodes.dat
Ed2kServersUrl=http://gruk.org/server.met.gz
ShowRatesOnTitle=0
GeoLiteCountryUpdateUrl=http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
StatsServerName=Shorty's ED2K stats
StatsServerURL=http://ed2k.shortypower.dyndns.org/?hash=
StatColor0=4194304
StatColor1=16761024
StatColor2=8454016
StatColor3=53760
StatColor4=32768
StatColor5=8421631
StatColor6=200
StatColor7=140
StatColor8=16750230
StatColor9=12583104
StatColor10=8454143
StatColor11=0
StatColor12=8454016
StatColor13=53760
StatColor14=32768
TableOrderingServer=N:0:0
TableWidthsServer=N:150,A:140,P:25,D:150,p:25,U:40,F:45,r:60,f:40,S:40,V:80
TableOrderingDownload=a:0:0
TableWidthsDownload=a:30,N:260,Z:60,T:65,C:65,S:65,P:170,u:50,p:55,s:70,r:110,c:220,R:220
TableOrderingSources=N:0:0
TableWidthsSources=N:260,D:65,S:65,U:65,P:170,V:50,q:55,O:110,F:200,R:200,m:100
TableOrderingShared=N:0:0
TableWidthsShared=N:250,Z:100,Y:50,p:70,I:220,Q:100,A:100,T:120,R:100,P:120,C:120,D:220
TableOrderingPeers=N:0:0
TableWidthsPeers=N:260,D:65,S:65,U:65,s:65,A:170,V:50,Q:70,q:70,O:110,f:200,m:100
[GUI]
HideOnClose=0
[GUI/TransferWnd]
Splitter=418
ShowClientList=1
[Browser]
CustomBrowserString=
OpenPageInTab=1
[ExternalConnect]
UseSrcSeeds=0
ShowPercent=1
ShowProgressBar=1
AcceptExternalConnections=1
ECAddress=0.0.0.0
ECPort=4712
UPnPECEnabled=0
ECPassword=...pass_md5...
UseSecIdent=1
IpFilterClients=1
IpFilterServers=1
TransmitOnlyUploadingClients=0
[Statistics]
MaxClientVersions=0
[PowerManagement]
PreventSleepWhileDownloading=0
[SkinGUIOptions]
Skin=
[Razor_Preferences]
FastED2KLinksHandler=1
MAIN_X_POS=0
MAIN_Y_POS=36
MAIN_X_SIZE=1024
MAIN_Y_SIZE=704
Maximized=1
SRV_SPLITTER_POS=463
[WebServer]
Enabled=1
Template=mobileMule
Password=...pass_md5...
UseLowRightsUser=0
PasswordLow=
Port=4711
UPnPWebServerEnabled=0
WebUPnPTCPPort=50001
PageRefreshTime=120
UseGzip=1
Path=amule
[Obfuscation]
IsClientCryptLayerSupported=1
IsCryptLayerRequested=1
IsClientCryptLayerRequired=0
CryptoPaddingLenght=254
CryptoKadUDPKey=-1610009507
[Proxy]
ProxyEnablePassword=0
ProxyUser=
ProxyPassword=
ProxyEnableProxy=0
ProxyType=0
ProxyName=
ProxyPort=1080
[UserEvents]
[UserEvents/DownloadCompleted]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/NewChatSession]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/OutOfDiskSpace]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
[UserEvents/ErrorOnCompletion]
CoreEnabled=0
CoreCommand=
GUIEnabled=0
GUICommand=
Está prácticamente por defecto. He añadido los servidores met, las rutas de descarga, activado las ExternalConnect, activado WebServer y cambiado el template (creo que nada más ...).
Sigo pensando que es alguna cosa de Apache, pero mis conocimientos no dan más de sí.

Saludos!
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Se me ocurre una cosa, ¿puedes probar a añadir los dos casos?

Código: Seleccionar todo

ProxyPass /amule http://localhost:4711
ProxyPassReverse /amule http://localhost:4711

ProxyPass /amule/ http://localhost:4711/
ProxyPassReverse /amule/ http://localhost:4711/
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Buenas...
Ésa es la opción del "sólo he llegado a que cargue malamente la página de inicio (por algún problema de rutas no me salen imágenes ni me deja logarme)."
Llego a la página, pero al logarme ...

Código: Seleccionar todo

Not Found

The requested URL /main.php was not found on this server.
Apache/2.4.10 (Raspbian) Server at dominio Port 80
En el access.log:

Código: Seleccionar todo

IP - - [19/Mar/2018:13:56:14 +0100] "GET /amule HTTP/1.1" 200 1947 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
IP - - [19/Mar/2018:13:56:14 +0100] "GET /login-icon.png HTTP/1.1" 404 516 "http://dominio/amule" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
IP - - [19/Mar/2018:13:56:15 +0100] "GET /favicon.ico HTTP/1.1" 404 513 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
IP - - [19/Mar/2018:13:56:15 +0100] "GET /favicon.ico HTTP/1.1" 404 514 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
IP - - [19/Mar/2018:13:56:20 +0100] "POST /main.php HTTP/1.1" 404 511 "http://dominio/amule" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

¡aah! ya lo pillo
Claro, te está enviando a /main.php pero tú necesitas que te envíe a /amule/main.php
O sea, el problema es que amule está corriendo en raiz, y el proxy añade la ruta /amule/, pero el propio amule no respeta esa ruta y trata de ejecutarse desde raiz.
Bien, bien, ya vamos encaminados xD
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Lo tenemos!!!
Tu razonamiento era bueno: Problema de rutas.
He hecho unas cuantas combinaciones en plan chimpancé, y ésta es la buena:

Código: Seleccionar todo

ProxyPass / http://localhost:4711/
ProxyPassReverse /amule http://localhost:4711/

ProxyPass /amule/ http://localhost:4711/
ProxyPassReverse /amule/ http://localhost:4711/
Ahora me queda comprender lo que he hecho ... :noo
Jajajjaa

Por darle una vuelta de tuerca ... cuando me logo, la ruta me cambia a raiz (se pierde el /amule por el camino).
http://dominio/main.php#page-status
Imagino que tiene que ver con el ProxyPass /, como va en raiz pues todo en raiz. No me causa ningún trastorno en absoluto pero, te suena alguna regla o parámetro para que mantenga el /amule?

Y ya otra pregunta, pero esta interior para mí: Por qué no ha funcionado en ningún caso el RewriteRule? Qué tengo mal?
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Ok, ahora prueba sólo con estas dos líneas:

Código: Seleccionar todo

ProxyPass /amule http://localhost:4711
ProxyPassReverse /amule http://localhost:4711
Reinicia y prueba
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Sólo con eso, nada. Volvemos a la fase de "malamente"

Not Found

The requested URL /main.php was not found on this server.
Apache/2.4.10 (Raspbian) Server at dominio Port 80
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

Pues algo se me escapa, porque he montado el mismo sistema desde cero, con amule + apache proxy y sólo con esas dos líneas me está funcionando bien.
Por descartar cosas, ¿puedes vaciar cache o probar con otro navegador?
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Nada, sigue igual.
No parece tema de cache. Me da que he debido dejar el apache medio tonto en algún momento. Muchas pruebas y servicios a sus espaldas ...
Me queda la opción que dices: Montar un sistema de cero y comparar ficheros, pero ahora que funciona no sé yo jajajjaja
Avatar de Usuario
egrueda
Pi God
Pi God
Mensajes: 3426
Registrado: 10 Feb 2017, 19:31
Agradecido: 7 veces
Agradecimiento recibido: 269 veces

No me doy por vencido :-) es una configuración demasiado simple como para que falle.
Vamos a ver qué hay distinto en nuestras configuraciones.
Tengo apache2 (2.4.25) sobre raspian stretch (9.4)
Estos son los módulos que tengo activos en mi apache:

Código: Seleccionar todo

Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 mime_module (shared)
 mpm_event_module (shared)
 negotiation_module (shared)
 proxy_module (shared)
 proxy_html_module (shared)
 proxy_http_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)
 vhost_alias_module (shared)
 xml2enc_module (shared)
Aparte del proxy_module, tengo cargados el proxy_http_module y el proxy_html_module
¿Puedes comprarar?
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Ésa es la actitud! :mrgreen:
Yo tengo Apache 2.4.10 Prefork sobre Raspbian 8 Jessie.
Estos son los módulos cargados. Recuerda que mi Apache ha tenido (y tiene) mucho trajín, así que igual hay cosas de más ...

Código: Seleccionar todo

Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 headers_module (shared)
 lbmethod_byrequests_module (shared)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 proxy_module (shared)
 proxy_balancer_module (shared)
 proxy_connect_module (shared)
 proxy_http_module (shared)
 proxy_wstunnel_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 slotmem_shm_module (shared)
 socache_shmcb_module (shared)
 ssl_module (shared)
 status_module (shared)
bbvedf
Pi Alpha
Pi Alpha
Mensajes: 14
Registrado: 15 Mar 2018, 11:45
Agradecido: 0
Agradecimiento recibido: 0

Me faltaba el proxy_html. Activado y apache reiniciado.
Sigue el malamente. Accedo a la url pero no me carga imágenes y me peta la validación. El problema de las rutas.
Probado sólo con estas dos líneas ...
ProxyPass /amule http://localhost:4711
ProxyPassReverse /amule http://localhost:4711
Responder