Comment rediriger les sous-domaines sur un autre port sur le même serveur?

J'ai quelques sousdomaines que je souhaite rediriger vers des ports spécifiques sur le même serveur. Dis que j'ai

dev.mydomain.com 

Je souhaite que dev.mydomain.com redirige de manière transparente vers mydomain.com:8080 et je souhaite conserver le nom de sous-domaine original l'URL du navigateur.

Comment puis-je faire cela avec Apache 2.2? J'ai Apache 2.2 fonctionnant sur le port 80 par défaut. Je ne peux pas comprendre la configuration d'écriture pour que cela se produise.

J'ai déjà configuré dev.mydomain.com pour résoudre dans DNS à mydomain.com .

Il s'agit d'un serveur de développement intranet qui possède une adresse IP non routable, de sorte que je ne suis pas tellement préoccupé par les exploits et la sécurité qui compromettraient un serveur faisant face public.

5 Solutions collect form web for “Comment rediriger les sous-domaines sur un autre port sur le même serveur?”

Solution

Voici ce que j'ai finalement trouvé après avoir été mis dans la bonne direction par Miles Erickson. Je voulais que la barre d'adresse reflète le sous-domaine / domaine original de la requête et non le serveur et le port redirigé, mais il m'a mis sur le bon chemin vers Google une solution utilisant VirtualHost et j'ai finalement trouvé une solution incluant l'utilisation de mod_proxy .

 <VirtualHost *:80> ServerAdmin me@mydomain.com ServerName dev.mydomain.com ProxyPreserveHost On # setup the proxy <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:8888/ ProxyPassReverse / http://localhost:8888/ </VirtualHost> 

En supposant que dev.mydomain.com peut être résolu à l'adresse IP de mydomain.com, vous pouvez ajouter ce qui suit à votre httpd.conf:

 NameVirtualHost *:80 <VirtualHost *:80> ServerName dev.mydomain.com redirect / http://mydomain.com:8080/ </VirtualHost> 

Documentation pertinente d'Apache:

  1. Guide pour créer des hôtes virtuels basés sur des noms
  2. Core , y compris VirtualHost et NameVirtualHost
  3. Réorienter

Question associée: redirection d'Apache basée sur le nom d'hôte

(Remarque: la version originale de cette réponse a suggéré de manière incorrecte l'utilisation de RedirectMatch, qui, comme l'a souligné clairement @ChrisS, ne peut pas analyser la partie de domaine de l'URL.)

Ajoutez dans votre configuration principale vhost les lignes suivantes:

 ProxyPreserveHost On ProxyPass / http://example.com:8080/ ProxyPassReverse / http://example:8080/ 

Notez que cela nécessite mod_proxy sur Apache.

Vous recherchez le mod_rewrite. Voici le lien vers la documentation d'Apache qui comprend de nombreux exemples pour les configurations basiques et avancées .

Et si vous ne pouvez pas interpréter la documentation vous-même, essayez d'ajouter ceci à httpd.conf:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC] RewriteRule ^(.*)$ http://example.com:8080$1 [R=301] 

Et si ce n'est pas un exemple clair, voici un lien vers un guide mod_rewrite débutant .

Exécutez la ligne suivante sur le terminal (spécifiez correctement votre nom de domaine et de sous-domaine)

 sudo nano /etc/apache2/sites-available/subdomain.domain.com.conf 

Collez le code suivant et modifiez vos besoins

 <VirtualHost *:80> ServerAdmin admin@domain.com ServerName subdomain.domain.com ServerAlias subdomain.domain.com ProxyRequests Off #ProxyPass / http://localhost:8080/ <Location /> ProxyPreserveHost On ProxyPass http://domain.com:8080/ ProxyPassReverse http://domain.com:8080/ </Location> # Uncomment the line below if your site uses SSL. #SSLProxyEngine On </VirtualHost> 

Exécutez les lignes suivantes sur le terminal (spécifiez correctement votre nom de domaine et de sous-domaine)

 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod subdomain.domain.com.conf sudo service apache2 restart 
  • Nombre maximum d'hôtes par réseau
  • Première et dernière adresse IP du réseau 192.168.176.0/23 (sous-réseau 23)
  • Comment puis-je returnner le nom d'hôte d'un sous-domaine vers un nom de domaine différent?
  • Problèmes de circulation potentiels sur un seul sous-réseau (ger)
  • Les sous-domaines de l'hôte virtuel Apache pointent vers le même directory
  • Comment faire pour que le sous-domaine entre en lien avec un dossier?
  • Ajouter un sous-réseau à un vsphere avec un seul hôte vcenter et esxi
  • Avantages de l'utilisation d'un sous-domaine pour l'envoi de courrier électronique?
  • Comment join 2 sous-réseaux différents dans un domaine
  • Structure d'adresse IP de base
  • Fusion de TI - site autonome avec controller de domaine VS thinpostr outpost de clients avec access au server terminal
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.