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:*www.abonnel.fr <==[reverse proxy ]==> 51.23.41.1
|
||||
http://extra.perdu.com <==[ reverse proxy ]==> http://103.224.182.253
|
||||
```
|
||||
|
||||
## Pré requis
|
||||
La configuration du site Internet s'effectue dans un fichier de configuration.
|
||||
## Prérequis
|
||||
|
||||
- Il accepte une connexion sur le port http 80.
|
||||
- Il redirige vers un hébergement par http avec adresse IP
|
||||
- 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 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`.
|
||||
## 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` :
|
||||
|
||||
Le fichier à créer est `/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
|
||||
|
||||
@@ -33,23 +39,29 @@ Le fichier à créer est `/etc/apache2/sites-available/100.com.perdu.extra.conf`
|
||||
</Directory>
|
||||
|
||||
ProxyPreserveHost On
|
||||
ProxyPass "/" "http:*103.224.182.253/"
|
||||
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.
|
||||
### 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
|
||||
```
|
||||
|
||||
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",
|
||||
"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",
|
||||
"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",
|
||||
"updated_at": "2023-02-09 16:12:18",
|
||||
"revisions": [],
|
||||
"updated_at": "2026-05-17 18:31:44",
|
||||
"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": "",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"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: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: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