web-dev-qa-db-fra.com

Reverse proxy uniquement sur une URL spécifique

J'ai un serveur Web sur www.ourcompany.com sous Apache2. Grâce aux modules de proxy, je peux (par exemple) obtenir 172.16.0.5, un périphérique IP interne, accessible sur www.ourcompany.com/device.

Le problème est que tout le monde peut jouer avec le périphérique ou l'explorer à l'aide de chaînes envoyées à l'adresse www.ourcompany.com/device/change/settings/here.html. J'aimerais que le proxy inverse ne fonctionne que pour une URL spécifique; www.ourcompany.com/device/you/must/use/this tandis que tout le reste sera rejeté si demandé.

Existe-t-il un paramètre qui peut être utilisé pour cela, ou s'agit-il d'une simple condition de réécriture placée dans l'hôte virtuel pour le site sous Activer les sites? Quel est le moyen le plus simple et le plus facile à maintenir pour nettoyer les demandes adressées au périphérique interne via le proxy inverse?

Lancer Apache2 sur Ubuntu.

1
Bart Silverstrim

La directive ProxyPass accepte 3 contextes différents: configuration du serveur, hôte virtuel, répertoire.

Parce que is est valide dans un contexte de répertoire, peut être utilisé dans les conteneurs <Directory>, <Location>, <Files> et <Proxy> dans les fichiers de configuration du serveur, sous réserve des restrictions décrites dans Sections de configuration.

Dans votre cas, vous pouvez utiliser un conteneur Location pour spécifier les emplacements autorisés.

<Location /device>
ProxyPass ...
</Location>
1
Simone Carletti