publish: Apache 2 : configurer un reverse-proxy HTTP pour un sous-domaine
This commit is contained in:
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "Apache 2 : configurer un reverse-proxy HTTP pour un sous-domaine",
|
|
||||||
"_updated_at": "2026-05-17 18:31:39",
|
|
||||||
"slug": "http-proxy-apache2",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2023-02-09 16:12",
|
|
||||||
"category": "Informatique",
|
|
||||||
"tags": {
|
|
||||||
"tags": [
|
|
||||||
"HTTP",
|
|
||||||
"Apache"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": ""
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
# Apache 2 : configurer un reverse-proxy HTTP pour un sous-domaine
|
|
||||||
|
|
||||||
Voici mes notes pour configurer un reverse-proxy avec Apache 2, qui expose un sous-domaine HTTP et relaie les requêtes vers un serveur d'origine identifié par son adresse IP.
|
|
||||||
|
|
||||||
```
|
|
||||||
http://extra.perdu.com <==[ reverse proxy ]==> http://103.224.182.253
|
|
||||||
```
|
|
||||||
|
|
||||||
## Prérequis
|
|
||||||
|
|
||||||
- Apache 2 installé avec les modules `proxy` et `proxy_http` activés :
|
|
||||||
```
|
|
||||||
sudo a2enmod proxy proxy_http
|
|
||||||
```
|
|
||||||
- Le port 80 ouvert sur la machine qui héberge le reverse-proxy.
|
|
||||||
- Un enregistrement DNS pointant le sous-domaine (ici `extra.perdu.com`) vers l'IP du reverse-proxy.
|
|
||||||
|
|
||||||
## Configuration du VirtualHost
|
|
||||||
|
|
||||||
Chaque site est décrit par un fichier `.conf` placé dans `/etc/apache2/sites-available/`. Dans cet exemple, on configure le site `extra.perdu.com` pour qu'il relaie le trafic vers `103.224.182.253`.
|
|
||||||
|
|
||||||
Créer le fichier `/etc/apache2/sites-available/100-com.perdu.extra.conf` :
|
|
||||||
|
|
||||||
```
|
|
||||||
<VirtualHost *:80>
|
|
||||||
|
|
||||||
ServerName extra.perdu.com
|
|
||||||
|
|
||||||
# On ne proxifie pas les requêtes Let's Encrypt :
|
|
||||||
# elles doivent être servies localement.
|
|
||||||
ProxyPass /.well-known/acme-challenge !
|
|
||||||
Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge
|
|
||||||
|
|
||||||
<Directory "/var/www/html/.well-known/acme-challenge">
|
|
||||||
Options None
|
|
||||||
AllowOverride None
|
|
||||||
Require all granted
|
|
||||||
AddDefaultCharset off
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ProxyPreserveHost On
|
|
||||||
ProxyPass "/" "http://103.224.182.253/"
|
|
||||||
ProxyPassReverse "/" "http://103.224.182.253/"
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Pourquoi exclure `/.well-known/acme-challenge` ?
|
|
||||||
|
|
||||||
L'exclusion via `ProxyPass /.well-known/acme-challenge !` prépare l'ajout futur d'un certificat SSL avec Let's Encrypt. Lors de la validation du domaine, Let's Encrypt attend une réponse HTTP 200 sur ce chemin : si la requête est relayée vers le serveur d'origine, la validation peut échouer.
|
|
||||||
|
|
||||||
Cette directive peut rester en place même si vous ne prévoyez pas d'utiliser Let's Encrypt dans l'immédiat — elle est sans effet tant que le répertoire n'est pas sollicité.
|
|
||||||
|
|
||||||
## Activer le site
|
|
||||||
|
|
||||||
Activer la configuration avec `a2ensite` :
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo a2ensite 100-com.perdu.extra.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
Vérifier que la syntaxe est correcte, puis recharger Apache sans interrompre le service :
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apache2ctl configtest
|
|
||||||
sudo systemctl reload apache2
|
|
||||||
```
|
|
||||||
@@ -1,27 +1,33 @@
|
|||||||
# Apache 2 : reverse-proxy : configurer un site http avec sous-domaine en www
|
# Apache 2 : configurer un reverse-proxy HTTP pour un sous-domaine
|
||||||
|
|
||||||
Voici mes prises de notes pour configurer un reverse-proxy avec Apache 2.
|
Voici mes notes pour configurer un reverse-proxy avec Apache 2, qui expose un sous-domaine HTTP et relaie les requêtes vers un serveur d'origine identifié par son adresse IP.
|
||||||
|
|
||||||
```
|
```
|
||||||
Configurer Apache 2
|
http://extra.perdu.com <==[ reverse proxy ]==> http://103.224.182.253
|
||||||
http:*www.abonnel.fr <==[reverse proxy ]==> 51.23.41.1
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Pré requis
|
## Prérequis
|
||||||
La configuration du site Internet s'effectue dans un fichier de configuration.
|
|
||||||
|
|
||||||
- Il accepte une connexion sur le port http 80.
|
- Apache 2 installé avec les modules `proxy` et `proxy_http` activés :
|
||||||
- Il redirige vers un hébergement par http avec adresse IP
|
```
|
||||||
|
sudo a2enmod proxy proxy_http
|
||||||
|
```
|
||||||
|
- Le port 80 ouvert sur la machine qui héberge le reverse-proxy.
|
||||||
|
- Un enregistrement DNS pointant le sous-domaine (ici `extra.perdu.com`) vers l'IP du reverse-proxy.
|
||||||
|
|
||||||
## Configuration Apache 2
|
## Configuration du VirtualHost
|
||||||
On configure un site web à partir d'un fichier `conf` qui contient des directives. Dans notre exemple de fichier `conf` configure le site Internet `extra.perdu.com`.
|
|
||||||
|
Chaque site est décrit par un fichier `.conf` placé dans `/etc/apache2/sites-available/`. Dans cet exemple, on configure le site `extra.perdu.com` pour qu'il relaie le trafic vers `103.224.182.253`.
|
||||||
|
|
||||||
|
Créer le fichier `/etc/apache2/sites-available/100-com.perdu.extra.conf` :
|
||||||
|
|
||||||
Le fichier à créer est `/etc/apache2/sites-available/100.com.perdu.extra.conf` :
|
|
||||||
```
|
```
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
|
|
||||||
ServerName extra.perdu.com
|
ServerName extra.perdu.com
|
||||||
|
|
||||||
|
# On ne proxifie pas les requêtes Let's Encrypt :
|
||||||
|
# elles doivent être servies localement.
|
||||||
ProxyPass /.well-known/acme-challenge !
|
ProxyPass /.well-known/acme-challenge !
|
||||||
Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge
|
Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge
|
||||||
|
|
||||||
@@ -33,23 +39,29 @@ Le fichier à créer est `/etc/apache2/sites-available/100.com.perdu.extra.conf`
|
|||||||
</Directory>
|
</Directory>
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
ProxyPass "/" "http:*103.224.182.253/"
|
ProxyPass "/" "http://103.224.182.253/"
|
||||||
ProxyPassReverse "/" "http://103.224.182.253/"
|
ProxyPassReverse "/" "http://103.224.182.253/"
|
||||||
|
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
```
|
```
|
||||||
|
|
||||||
Afin de prévenir notre paramétrage futur en https, la directive `RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*` permet de ne pas rediriger les appels pour Let's Encrypt (http/301). En effet, Let's encrypt n'accepte que des status http/200 lorsque nous mettrons en œuvre l'ajout d'un certificat SSL.
|
### Pourquoi exclure `/.well-known/acme-challenge` ?
|
||||||
|
|
||||||
Cette directive peut-être laissée active, même si vous ne prévoyez pas d'ajouter une certificat SSL avec Let's Encrypt.
|
L'exclusion via `ProxyPass /.well-known/acme-challenge !` prépare l'ajout futur d'un certificat SSL avec Let's Encrypt. Lors de la validation du domaine, Let's Encrypt attend une réponse HTTP 200 sur ce chemin : si la requête est relayée vers le serveur d'origine, la validation peut échouer.
|
||||||
|
|
||||||
|
Cette directive peut rester en place même si vous ne prévoyez pas d'utiliser Let's Encrypt dans l'immédiat — elle est sans effet tant que le répertoire n'est pas sollicité.
|
||||||
|
|
||||||
|
## Activer le site
|
||||||
|
|
||||||
|
Activer la configuration avec `a2ensite` :
|
||||||
|
|
||||||
## Activer la configuration du site
|
|
||||||
On active la configuration du site en utilisant le binaire `a2ensite`
|
|
||||||
```
|
```
|
||||||
sudo a2ensite 100-com.perdu.extra.conf
|
sudo a2ensite 100-com.perdu.extra.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
Et si tout se passe bien, on recharge la configuration d'Apache 2 sans avoir besoin de redémarre le service :
|
Vérifier que la syntaxe est correcte, puis recharger Apache sans interrompre le service :
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo service apache2 reload
|
sudo apache2ctl configtest
|
||||||
|
sudo systemctl reload apache2
|
||||||
```
|
```
|
||||||
@@ -1,18 +1,32 @@
|
|||||||
{
|
{
|
||||||
"uuid": "297a69aa-5f67-4c02-8e02-454c2700ee7a",
|
"uuid": "297a69aa-5f67-4c02-8e02-454c2700ee7a",
|
||||||
"slug": "http-proxy-apache2",
|
"slug": "http-proxy-apache2",
|
||||||
"title": "Apache 2 : reverse-proxy : configurer un site http avec sous-domaine en www",
|
"title": "Apache 2 : configurer un reverse-proxy HTTP pour un sous-domaine",
|
||||||
"author": "cedric@abonnel.fr",
|
"author": "cedric@abonnel.fr",
|
||||||
"published": true,
|
"published": true,
|
||||||
"published_at": "2023-02-09 16:12:18",
|
"featured": false,
|
||||||
|
"published_at": "2023-02-09 16:12",
|
||||||
"created_at": "2023-02-09 16:12:18",
|
"created_at": "2023-02-09 16:12:18",
|
||||||
"updated_at": "2023-02-09 16:12:18",
|
"updated_at": "2026-05-17 18:31:44",
|
||||||
"revisions": [],
|
"revisions": [
|
||||||
|
{
|
||||||
|
"n": 1,
|
||||||
|
"date": "2026-05-17 18:31:44",
|
||||||
|
"comment": "Titre modifié, tags modifiés, contenu modifié",
|
||||||
|
"title": "Apache 2 : reverse-proxy : configurer un site http avec sous-domaine en www"
|
||||||
|
}
|
||||||
|
],
|
||||||
"cover": "",
|
"cover": "",
|
||||||
"files_meta": [],
|
"files_meta": [],
|
||||||
"external_links": [],
|
"external_links": [],
|
||||||
"seo_title": "",
|
"seo_title": "",
|
||||||
"seo_description": "",
|
"seo_description": "",
|
||||||
"og_image": "",
|
"og_image": "",
|
||||||
"category": "Informatique"
|
"category": "Informatique",
|
||||||
|
"tags": {
|
||||||
|
"tags": [
|
||||||
|
"HTTP",
|
||||||
|
"Apache"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# Apache 2 : reverse-proxy : configurer un site http avec sous-domaine en www
|
||||||
|
|
||||||
|
Voici mes prises de notes pour configurer un reverse-proxy avec Apache 2.
|
||||||
|
|
||||||
|
```
|
||||||
|
Configurer Apache 2
|
||||||
|
http:*www.abonnel.fr <==[reverse proxy ]==> 51.23.41.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pré requis
|
||||||
|
La configuration du site Internet s'effectue dans un fichier de configuration.
|
||||||
|
|
||||||
|
- Il accepte une connexion sur le port http 80.
|
||||||
|
- Il redirige vers un hébergement par http avec adresse IP
|
||||||
|
|
||||||
|
## Configuration Apache 2
|
||||||
|
On configure un site web à partir d'un fichier `conf` qui contient des directives. Dans notre exemple de fichier `conf` configure le site Internet `extra.perdu.com`.
|
||||||
|
|
||||||
|
Le fichier à créer est `/etc/apache2/sites-available/100.com.perdu.extra.conf` :
|
||||||
|
```
|
||||||
|
<VirtualHost *:80>
|
||||||
|
|
||||||
|
ServerName extra.perdu.com
|
||||||
|
|
||||||
|
ProxyPass /.well-known/acme-challenge !
|
||||||
|
Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge
|
||||||
|
|
||||||
|
<Directory "/var/www/html/.well-known/acme-challenge">
|
||||||
|
Options None
|
||||||
|
AllowOverride None
|
||||||
|
Require all granted
|
||||||
|
AddDefaultCharset off
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
ProxyPreserveHost On
|
||||||
|
ProxyPass "/" "http:*103.224.182.253/"
|
||||||
|
ProxyPassReverse "/" "http://103.224.182.253/"
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
|
Afin de prévenir notre paramétrage futur en https, la directive `RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*` permet de ne pas rediriger les appels pour Let's Encrypt (http/301). En effet, Let's encrypt n'accepte que des status http/200 lorsque nous mettrons en œuvre l'ajout d'un certificat SSL.
|
||||||
|
|
||||||
|
Cette directive peut-être laissée active, même si vous ne prévoyez pas d'ajouter une certificat SSL avec Let's Encrypt.
|
||||||
|
|
||||||
|
## Activer la configuration du site
|
||||||
|
On active la configuration du site en utilisant le binaire `a2ensite`
|
||||||
|
```
|
||||||
|
sudo a2ensite 100-com.perdu.extra.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Et si tout se passe bien, on recharge la configuration d'Apache 2 sans avoir besoin de redémarre le service :
|
||||||
|
```
|
||||||
|
sudo service apache2 reload
|
||||||
|
```
|
||||||
@@ -3156,3 +3156,9 @@
|
|||||||
{"ts":"2026-05-17 18:31:37","url":"/config/.env.production","ref":"","ua":"curl/8.7.1"}
|
{"ts":"2026-05-17 18:31:37","url":"/config/.env.production","ref":"","ua":"curl/8.7.1"}
|
||||||
{"ts":"2026-05-17 18:31:38","url":"/src/.env.local","ref":"","ua":"curl/8.7.1"}
|
{"ts":"2026-05-17 18:31:38","url":"/src/.env.local","ref":"","ua":"curl/8.7.1"}
|
||||||
{"ts":"2026-05-17 18:31:39","url":"/config/heroku.php","ref":"","ua":"curl/8.7.1"}
|
{"ts":"2026-05-17 18:31:39","url":"/config/heroku.php","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:40","url":"/root/.aws/config","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:40","url":"/app/config/aws.yml","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:41","url":"/th","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:41","url":"/ \"/website/config.env\",","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:43","url":"/ \"/.git/config\",","ref":"","ua":"curl/8.7.1"}
|
||||||
|
{"ts":"2026-05-17 18:31:43","url":"/ \"/.env.mailer_url\",","ref":"","ua":"curl/8.7.1"}
|
||||||
|
|||||||
Reference in New Issue
Block a user