Pages : 1
#1 Le 08/04/2024, à 09:31
- Emeric_val
Apache Docker Webcheck
Bonjour,
On dirait que j'ai besoin de votre aide pour déployer ce projet de mon côté :
https://github.com/Lissy93/web-check
La configuration actuelle est la suivante
Ubuntu
Apache2
Docker
Voici ce que j'ai fait
sudo docker pull lissy93/web-check
sudo docker run -p 3000:3000 lissy93/web-check
Je peux accéder à webcheck en utilisant l'url suivante (par exemple) :
https://monsite.com et la configuration apache suivante :
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.) ws://1.2.3.4:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.) http://1.2.3.4:3000/$1 [P,L]
Mais je souhaite accéder à webcheck par https://mysite.com/webcheck
J'ai donc adapté la configuration d'Apache avec
proxypass /webcheck http://1.2.3.4:3000/
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /webcheck/(.) ws://1.2.3.4:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /webcheck/(.) http://1.2.3.4:3000/$1 [P,L]
ProxyPassReverse /webcheck http://1.2.3.4:3000/
Mais ça ne marche pas. Toujours un problème 404 introuvable.
Avez-vous une idée de comment le faire fonctionner concernant ma configuration ?
Merci beaucoup!
Dernière modification par Emeric_val (Le 08/04/2024, à 09:40)
Hors ligne
#2 Le 08/04/2024, à 10:23
- krodelabestiole
Re : Apache Docker Webcheck
utiliser apache comme proxy dans un container docker c'est franchement tordu, je te déconseille, et c'est pas trop comme ça que docker est pensé.
idéalement je te conseillerais traefik avec lequel tu pourrais faire ce que tu veux et beaucoup plus, mais sinon je pense qu'il faudrait plus d'info pour qu'on puisse débuguer ta config, comme le chemin des fichiers, ou l'état de la directive allowoverride - voir doc. (et aussi ce serait beaucoup plus lisible avec les balises code stp)
Dernière modification par krodelabestiole (Le 08/04/2024, à 11:50)
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#3 Le 08/04/2024, à 10:57
- xubu1957
Re : Apache Docker Webcheck
Bonjour,
Pour ajouter toi-même les balises code à ton message #1 :
Cliquer sur le lien « Modifier » en bas à droite du message
Sélectionner le texte
Cliquer sur le <> de l'éditeur de message
Comme demandé dans le premier message du tutoriel Retour utilisable de commande
===========
Lecture conseillée > memento des balises code.
Dernière modification par xubu1957 (Le 08/04/2024, à 12:59)
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci. Membre de Linux-Azur
En ligne
#4 Le 08/04/2024, à 12:46
- Emeric_val
Re : Apache Docker Webcheck
Bonjour,
Merci pour les modifications et le retour.
Pour plus de détails effectivement, j'utilise Apache en proxy mais il n'est pas dans un docker.
Le docker container webcheck est lancer à part et je souhaite pourvoir le joindre au travers d'apache. D'ailleurs j'arrive bien à le joindre quand je tape par exemple cette adresse https://monsite.com avec la configuration ci-dessous
<VirtualHost *:443>
ServerName monsite.com
ServerAlias www.monsite.com
SSLEngine on
SSLProxyEngine on
SSLVerifyClient require
SSLVerifyDepth 1
SSLCADNRequestFile /home/user/CertificateAuthCA/selfsigned.crt
SSLOptions +StdEnvVars
SSLCACertificateFile /home/user/CertificateAuthCA/selfsigned-ca.crt
DocumentRoot /var/www/monsite.com/
ProxyPass / http://1.2.3.4:11000/site
ProxyPassReverse / http://1.2.3.4:11000/site
SSLCertificateFile /etc/letsencrypt/live/monsite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://1.2.3.4:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://1.2.3.4:3000/$1 [P,L]
</VirtualHost>
Je ne comprend pas pourquoi je ne parviens plus à le joindre si je modifie ma configuration vers
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /webcheck/(.) ws://1.2.3.4:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /webcheck/(.) http://1.2.3.4:3000/$1 [P,L]
et en utilisant une url de type https://monsite.com/webcheck
Merci beaucoup
Dernière modification par Emeric_val (Le 08/04/2024, à 13:00)
Hors ligne
#5 Le 08/04/2024, à 13:02
- bruno
Re : Apache Docker Webcheck
Bonjour,
D'abord oui tu peux parfaitement utiliser Apache comme mandataire inverse (reverse proxy) dans ce cas.
Pour que cela fonctionne il faudrait essayer ces modifications des règles réécirture :
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/webcheck/(.*) ws://1.2.3.4:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule ^/webcheck/(.*) http://1.2.3.4:3000/$1 [P,L]
Mais je trouverais plus propre et plus simple d'utiliser un domaine spécifique webcheck.example.come plutôt que l'emplacement example.com/webcheck.
#6 Le 08/04/2024, à 13:27
- Emeric_val
Re : Apache Docker Webcheck
Bonjour,
Je viens de tenter et malheureusement même résultat.
En regardant les traces réseau FireFox je vois ceci :
Résultat KO avec https://monsite.com/webcheck
GET
https://monsite.com/webcheck
[HTTP/1.1 200 OK 595ms]
GET
https://no-track.as93.net/js/script.js
[HTTP/2 200 0ms]
GET
https://monsite.com/static/js/main.77abb717.js
[HTTP/1.1 200 OK 538ms]
GET
https://monsite.com/static/css/main.9ed273f0.css
[HTTP/1.1 200 OK 132ms]
Propriété « -moz-osx-font-smoothing » inconnue. Déclaration abandonnée. index.css:18:2
XHRPOST
https://no-track.as93.net/api/event
[HTTP/3 202 94ms]
GET
https://monsite.com/web-check.png
[HTTP/1.1 200 OK 109ms]
GET
https://monsite.com/logo192.png
[HTTP/1.1 404 Not Found 0ms]
GET
https://monsite.com/favicon.ico
[HTTP/1.1 404 Not Found 0ms]
Résultat ok avec https://monsite.com/
GET https://monsite.com/
https://monsite.com/
[HTTP/1.1 200 OK 800ms]
GET
https://no-track.as93.net/js/script.js
[HTTP/2 200 0ms]
GET
https://monsite.com/static/js/main.77abb717.js
[HTTP/1.1 200 OK 463ms]
GET
https://monsite.com/static/css/main.9ed273f0.css
[HTTP/1.1 200 OK 118ms]
Propriété « -moz-osx-font-smoothing » inconnue. Déclaration abandonnée. index.css:18:2
XHRPOST
https://no-track.as93.net/api/event
[HTTP/3 202 235ms]
GET
https://i.ibb.co/NKtYjJ1/terminal-trove-web-check.png
[HTTP/1.1 200 OK 0ms]
GET
https://monsite.com/web-check.png
GET
https://monsite.com/logo192.png
[HTTP/1.1 404 Not Found 0ms]
GET
https://monsite.com/favicon.ico
[HTTP/1.1 404 Not Found 0ms]
Hors ligne
#7 Le 08/04/2024, à 14:42
- Emeric_val
Re : Apache Docker Webcheck
Bonjour,
D'abord oui tu peux parfaitement utiliser Apache comme mandataire inverse (reverse proxy) dans ce cas.
Pour que cela fonctionne il faudrait essayer ces modifications des règles réécirture :
RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule ^/webcheck/(.*) ws://1.2.3.4:3000/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule ^/webcheck/(.*) http://1.2.3.4:3000/$1 [P,L]
Mais je trouverais plus propre et plus simple d'utiliser un domaine spécifique webcheck.example.come plutôt que l'emplacement example.com/webcheck.
L'idée est bonne!
utiliser un domaine spécifique webcheck.example.come plutôt que l'emplacement example.com/webcheck.
Je peux créer le domaine spécifique mais il sera renvoyé vers 1.2.3.4
Du coup coté APACHE, je ne vois pas comment faire puisque tout arrive sur
<VirtualHost *:443>
ServerName monsite.com
ServerAlias www.monsite.com
...
Et il y a en plus la dimension certificat à prendre en compte non?
Hors ligne
#8 Le 08/04/2024, à 15:02
- bruno
Re : Apache Docker Webcheck
Tu peux avoir autant d'hôtes virtuels que tu veux qui servent différents domaines. Voir la doc apache
Tu peux avoir un même certificat pour webcheck.example.com et example.com ou deux certificats différents, c'est comme tu veux.
Je ne comprends pas la nécessité d'utiliser un certificat client (directive SSLVerifyClient require et suivantes)
Je ne comprends pas les retour du #6 qui sont identiques dans les deux cas et donnent pour la plupart des cas un code d'état 200, c.-à-d. succès de la requête.
Je ne comprends pas non plus pourquoi l'adresse IP locale est masquée avec 1.2.3.4, ni pourquoi c'est parfois redirigé vers le port 11000, parfois vers le port 3000
#9 Le 08/04/2024, à 15:38
- Emeric_val
Re : Apache Docker Webcheck
Tu peux avoir autant d'hôtes virtuels que tu veux qui servent différents domaines. Voir la doc apache
Tu peux avoir un même certificat pour webcheck.example.com et example.com ou deux certificats différents, c'est comme tu veux.Je ne comprends pas la nécessité d'utiliser un certificat client (directive SSLVerifyClient require et suivantes)
Je ne comprends pas les retour du #6 qui sont identiques dans les deux cas et donnent pour la plupart des cas un code d'état 200, c.-à-d. succès de la requête.
Je ne comprends pas non plus pourquoi l'adresse IP locale est masquée avec 1.2.3.4, ni pourquoi c'est parfois redirigé vers le port 11000, parfois vers le port 3000
Ok pour la première partie. Cependant, pour faire fonctionner webcheck.example.com, je dois au préalable ajouter une redirection de domaine chez mon hébergeur? c'est bien cela?
J'utilise un certificat client pour accéder à mon serveur au lieu d'un login mdp.
Je ne comprends pas non plus les retour du #6
J'utilise mon IP publique dans ma configuration que j'ai modifié par 1.2.3.4 pour ce post
Il y a deux conteneur docker sur mon serveur. Un sur le port 11000 et l'autre sur le port 3000.
Merci beaucoup!
Hors ligne
#10 Le 08/04/2024, à 16:14
- bruno
Re : Apache Docker Webcheck
Il y a deux conteneur docker sur mon serveur. Un sur le port 11000 et l'autre sur le port 3000.
Il faut donc deux hôtes virtuels différents avec deux domaines différents.
Chaque nom de domaine doit pointer vers l'IP publique du serveur (enregistrement DNS A et éventuellement AAAA)
J'utilise mon IP publique dans ma configuration que j'ai modifié par 1.2.3.4 pour ce post
ProxyPass / http://1.2.3.4:11000/site
ProxyPassReverse / http://1.2.3.4:11000/site
S'il s'agit bien d'un service tournant dans un conteneur docker l'adresse IP est 127.0.0.1 ou alors il manque une explication sur ta configuration.
De même pour les règles de réécriture pour l'autre service qui est exposé sur le port 3000.
Dernière modification par bruno (Le 08/04/2024, à 16:15)
#11 Le 08/04/2024, à 21:58
- krodelabestiole
Re : Apache Docker Webcheck
si tu n'as qu'un autre service à mettre en place, utiliser apache comme reverse proxy peut être une option, mais si tu as dans l'idée de déployer d'autres services plus tard, je te conseille d'entrer de plein pied dans l'écosystème docker en apprenant à utiliser docker compose et traefik, quitte à escalader une courbe d'apprentissage un peu raide au début.
au final ça simplifie vraiment la vie. traefik gère le routing entre tes services et tes domaines (reverse proxy), et simplifie grandement la mise en place de nombreuses autres fonctionnalités :
- automatisation complète de la génération et du renouvellement des certificats
- redirection forcée vers https
- protection de n'importe quel service derrière un mot de passe
etc.
et aussi, grâce à la puissance de docker et parce que traefik peut être entièrement géré depuis un fichier docker-compose, la migration de l'ensemble du système consiste à copier quelques fichiers textes sur une autre machine.
la configuration est au final plus simple que celle d'Apache (niveau d'abstraction plus élevé, donc mieux lisible et nécessite moins de directives "de bas niveau").
en exemple je peux te proposer l'environnement de dev d'ubuntu-fr : https://gitlab.com/ubuntu-fr/code/ufr-dev-env
tout est dans le docker-compose.yml.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#12 Le 08/04/2024, à 22:41
- krodelabestiole
Re : Apache Docker Webcheck
Mais je trouverais plus propre et plus simple d'utiliser un domaine spécifique webcheck.example.come plutôt que l'emplacement example.com/webcheck.
pareil !
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
Pages : 1