Deployment de siteweb sur un port different que 80/443 ne redirige pas. [Résolu]

Signaler
Messages postés
177
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
15 janvier 2021
-
Messages postés
18488
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
-
Bonjour,

J’essaie de déployer un site YouPHPTube sur un port différent que 80/443, comme 8082 mais le site ne charge pas, il semble rediriger sur l’IP local du serveur mais a distance ça ne fait aucun sens :



Donc j’ai modifier le fichier /etc/apache2/sites-available/avideo.conf et il ressemble à ça maintenant :

ServerName localhost

<VirtualHost *:80>
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    DocumentRoot /var/www/avideo/
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !=localhost
    RewriteCond %{REMOTE_ADDR} !=127.0.0.1
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    ServerAdmin  webmaster@localhost
    DocumentRoot /var/www/avideo/
    RewriteEngine On
    # redirect to configured domain or IP (updated by inithook)
    RewriteCond %{HTTP_HOST} !^zawacktv.com$
#    RewriteRule ^/(.*) https://192.168.2.125/$1 [R,L]
</VirtualHost>

<Directory /var/www/avideo/>
    Options +FollowSymLinks
    Options -Indexes
    AllowOverride All
    Require all granted
</Directory>


Le site ne charge toujours pas car il y a des liens qui montre le domaine mais https://zawacktv.com a la place de
https://zawacktv.com:8081 sur la page principale donc certains éléments ne veulent pas s’afficher. J'ai
inclus une capture d'écran car j'ai un peut de difficulté à expliquer ce que je vois :



Et après quelques temps (et a cause d'un sans doute timeout):



Donc ma question est : comment faire pour faire en sorte que le site aille tous les liens avec le port
8081? J’ai jouer avec le rewrite dans le fichier de configuration du site virtuel /etc/apache2/sites-
enabled/avideo.conf Mais sans succès.

J’ai aussi faite des recherches et il n’y avais rien qui aurais plus
réglé la situation.

Merci d’avance pour de l’aide.

Guillaume

4 réponses

Messages postés
18488
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 246
Bonjour,

Tu peux modifier la configuration Apache autant que tu veux et créer toutes les redirections imaginables, à aucun moment le contenu de tes fichiers HTML ne sera modifié. Afin que les liens sur tes pages utilisent bien le port 8081, il n'y a pas de miracle, il faut modifier ton code HTML afin de mettre à jour ces liens.
Messages postés
18488
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 246
> J'ai lu qu'un "reverse proxy" pourrais tout faire fonctionner

Même la machine à café ?

Ou bien tu as mal lu / rien compris, ou bien celui qui a écrit ça raconte des bêtises.
Ça m'étonnerait que quelqu'un qui sait de quoi il parle dise qu'un reverse proxy permet de tout faire fonctionner.

Et vu la configuration reverse proxy que tu tentes de mettre en place n'a aucun sens, j'opterai pour la première solution : tu n'as rien compris :)

Ce que tu tentes de faire : créer un reverse proxy sur https://zawacktv.com/ afin d'afficher https://zawacktv.com:8081/

Déjà, si tu as déplacé ton Apache sur https://zawacktv.com:8081/, c'est parce que tu n'arrivais pas à le faire fonctionner sur https://zawacktv.com/, non ?
Donc il y a peu de chances pour que tu fasses fonctionner ton reverse proxy sur https://zawacktv.com/
Et si tu y arrives, pourquoi ne pas mettre direction Apache sur https://zawacktv.com/ sans reverse ?
Ce que tu tentes de faire n'a juste aucun sens.

Un reverse proxy n'est absolument pas un outil qui sert à modifier tes pages Web ou les liens dedans.

Je répète : Afin que les liens sur tes pages utilisent bien le port 8081, il n'y a pas de miracle, il faut modifier ton code HTML afin de mettre à jour ces liens.

Ce n'est pas le rôle ni d'un serveur ni d'un reverse proxy que de remplacer un code HTML
<a href="https://zawacktv.com/user/">Sign In</a>

en
<a href="https://zawacktv.com:8081/user/">Sign In</a>


Ça, c'est à toi de le faire dans ton code HTML.

L'URL affichée dans le coin inférieur à gauche lorsque tu poses le curseur sur le lien, c'est celle dans l'attribut href de ton code HTML. Tu peux jouer avec toutes les redirections, configuration serveur, ou reverse proxy que tu veux, temps que ton code HTML contiendra « href="https://zawacktv.com/user/" » alors tu verras https://zawacktv.com/user/
Et puisque https://zawacktv.com/user/ ne fonctionne pas, un clic dessus ne fonctionnera pas.
Messages postés
18488
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 246
> Un reverse proxy n'est absolument pas un outil qui sert à modifier tes pages Web ou les liens dedans.

Pour nuancer quand même : un proxy (reverse ou pas) peut altérer le contenu et notamment injecter du code.

Donc oui, tu pourrais configurer Apache afin de procéder à ce "rechercher/remplacer" de tes liens automatiquement, mais je te déconseille de faire reposer le bon fonctionnement des liens de ton site sur une configuration serveur, quand cela peut être corrigé directement dans le code HTML lui-même. La configuration du serveur devrait rester aussi générale que possible, sans devoir y ajouter des modifications au cas par cas.

Un reverse proxy serait utile si tu avais plusieurs serveurs en local mais que tu souhaites que leur accès se fasse uniquement via un seul serveur exposé, le reverse proxy.
Mais là, tu n'as qu'un seul serveur, donc mettre en place un reverse proxy n'est pas pertinent.
Messages postés
177
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
15 janvier 2021
1
J'ai lu qu'un "reverse proxy" pourrais tout faire fonctionner, j'ai suivi les instructions trouvés sur le web mais j'ai une erreur: 503 Service Unavailable.



Voile fichier /etc/apache2/sites-enabled/avideo.conf

ServerName localhost

<VirtualHost *:80>
UseCanonicalName Off
ServerAdmin webmaster@localhost
DocumentRoot /var/www/avideo/
RewriteEngine On
RewriteCond %{HTTP_HOST} !=localhost
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

<VirtualHost *:443>
SSLEngine on
ServerAdmin webmaster@localhost
DocumentRoot /var/www/avideo/
RewriteEngine On
# redirect to configured domain or IP (updated by inithook)
# RewriteCond %{HTTP_HOST} !^zawacktv.com$
# RewriteRule ^/(.*) https://zawacktv.com/$1 [R,L]


SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}

ProxyVia On
ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Proxy>

ProxyPass / https://zawacktv.com/
ProxyPassReverse / https://zawacktv.com:8081/

</VirtualHost>

<Directory /var/www/avideo/>
Options +FollowSymLinks
Options -Indexes
AllowOverride All
Require all granted
</Directory>


Est-ce que il y a des choses à ajouter/retirer?

Merci :-)
Messages postés
177
Date d'inscription
vendredi 11 octobre 2013
Statut
Membre
Dernière intervention
15 janvier 2021
1
Oui j'ai peut être mal compris. ;-)

Je vais expliquer un peut plus ce que j’essaie d'accomplir.

On parle le deux serveurs web différents tournant sur deux différentes machines, j'ai qu'une IP publique, je veut crée un site de partage de vidéos avec Avideo (anciennement YouPHPTube), les ports 80 et 443 sont pris par le premier serveur web, le deuxième serveur doit utiliser un autre port, 8081. Normalement ça fonctionne de simplement rediriger le port 80 vers un autre, 8080 mais dans notre cas ça ne fonctionne pas car certains éléments comme nous le savons sont des liens pointant sur 80/443.

J'ai été dans le répertoire web /var/www/avideo j'ai passer un certain temps à ouvrir des fichiers avec un éditeur texte dans le terminal pour voir si les liens à modifier sont là mais je ne trouve rien.

oui https://zawacktv.com va être rediriger sur https://zawacktv.com:8081 mais avant je doit trouver les fichiers des web pages et changer les liens pour qu'ils pointent sur :8081.

Je vais marquer le post comme résolu car nous savons maintenant que c'est les fichiers des pages web qu'il faut changes les liens dedans.

Merci pour votre aide ;-)

Guillaume
Messages postés
18488
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 246
Le code HTML étant généré par le site (YouPHPTube), c'est donc le site qui devrait directement fournir les bons liens, sans intervention de la part d'un serveur HTTP ou d'un proxy. La plupart des scripts développés un minimum sérieusement, ou bien détectent correctement l'URL de base avec le port et le dossier, ou bien offrent une possibilité de renseigner l'URL publique dans leur configuration et génèrent alors tous les liens internes à l'aide de cette URL configurée.

Lors de l'installation de YouPHPTube, il semblerait qu'il t'est bien demandé de préciser cette URL :
Voir https://tutorials.youphptube.com/video/how-to-install-youphptube-in-a-fresh-ubuntu-server à 13:05

Visiblement, tu as renseigné https://zawacktv.com/
Maintenant, il faut trouver où la configuration est stockée, trouver cette valeur, et la remplacer par https://zawacktv.com:8081/

Et ne connaissant pas ce script, et leur documentation étant plutôt pourrie, je ne pourrais pas tellement te guider à moins d'installer moi-même le script, mais je manque de temps pour le moment. Il existe probablement un fichier, sinon, c'est dans la base de données. Bonne chance !


> On parle le deux serveurs web différents tournant sur deux différentes machines

Dans l'entre-temps, j'ai justement ajouter un commentaire à ma réponse précédente, afin d'indiquer que justement, dans ce cas, un reverse proxy est utile :)

Je te conseille de rediriger les ports 80/443 vers un reverse proxy et ensuite publier tes différents sites par le biais de ce reverse proxy. Ça sera beaucoup plus simple à gérer, certaines solutions permettent d'automatiser l'obtention du certificat SSL, et tu pourras aussi servir tes différents sites via les ports standards, la différenciation peut se faire par exemple en utilisant des sous-domaines.
Jette un œil à
https://nginxproxymanager.com/
https://caddyserver.com/
https://traefik.io/traefik/