Cette question a déjà été postée par un autre utilisateur mais aucune réponse détaillée n’a été donnée. Voici le lien vers la question initiale - ne adresse IP, deux sites Web, sur deux machines
J'ai deux machines chacune avec Apache2 installé et adresses IP statiques.
Serveur 1
example.com
static ip = 192.168.0.6
Apache2 running on ports 80 and 443 fine
ufw and router firewall are open on ports 80 and 443 as well
Serveur 2
domain name = myhost01.example.com
static ip = 192.168.0.7
Apache2 running on 8080(HTTP) and 8443(HTTPS)
ufw and router firewall are open on ports 8080 and 8443
Lorsque je vais sur {http) www.example.com ou (https) www.example.com - je reçois correctement le contenu Web du serveur 1
Lorsque je vais sur myhost01.example.com:8080 ou myhost01.example.com:8443 - Je reçois correctement le contenu Web du serveur 2
Je voudrais inverser le serveur proxy 2 afin qu'un utilisateur accède à http: // myhost01 .example.com/il reçoive le contenu de http: // myhost01. example.com:8080/, masquant le numéro de port. Actuellement, je reçois un message d'erreur "impossible de se connecter/page Web introuvable", lorsque j'essaie d'accéder à myhost01 (point) exemple (point) com
Dans le fichier d'hôte virtuel pour example.com, j'ai utilisé ce qui suit:
ProxyRequests Off
ProxyPass / http://myhost01. example.com:8080/
ProxyPassReverse / http://myhost01 .example.com:8080/
Les modules proxy et proxy_http sont activés dans Apache2
Des idées sur la façon de faire fonctionner cela?
P.S. - Des espaces ont été ajoutés aux URL car je ne dispose pas de suffisamment de points de réputation pour publier plus de deux URL.
** UPDATE - Voir les notes ci-dessous
Server1 - example.com - FICHIER VHOST
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /myweb/cmweb/Apache/http
#ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://myhost01.example.com:8080/
ProxyPassReverse / http://myhost01.example.com:8080/
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
<Directory /myweb/cmweb/Apache/http/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
LogLevel warn
</VirtualHost>
Proxy essayé avec 192.168.0.7 remplaçant myhost01 (point) exemple (point) com en vain
Server2 - exemple myhost01 (point) (point) avec fichier VHOST
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName myhost01.example.com
ServerAlias myhost01 myhost01.example.com
DocumentRoot /mwdhost/cmweb/Apache/http
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mwdhost/cmweb/Apache/http/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
LogLevel warn
</VirtualHost>
myhost01 a été ajouté à Un enregistrement de domaine peut créer un NSLOOKUP et obtenir une adresse IP externe correcte pour myhost01.example.com
Ci-dessous est le Apache Error.log pour server1 - Peut-être un indice à mes problèmes?
Sun Feb 02 18:24:52 2014] [error] (111)Connection refused: proxy: HTTP: attempt to connect to 54.43.138.12:8080 (myhost01.example.com) failed
[Sun Feb 02 18:24:52 2014] [error] ap_proxy_connect_backend disabling worker for (myhost01.example.com)
[Sun Feb 02 18:24:53 2014] [error] proxy: HTTP: disabled connection for (myhost01.example.com)
[Mon Feb 03 07:33:54 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
Vérifié que server1 (example.com) peut rechercher et obtenir un enregistrement DNS correct pour myhost01.example.com
?
Vos serveurs ont-ils chacun une adresse IP publique et une adresse IP interne? Ou est-ce que c'est comme la question liée que vous avez une IP?
Est-ce que je sens un routeur bon marché avec une adresse IP, exécute nat et redirection de port sur les ports mentionnés?
Les deux enregistrements DNS (myhost1.example.com et example.com) indiquent la même adresse IP publique?
oui, et c'est intentionnel et correct, mais que se passe-t-il?
myhost01.example.com
renvoyant au routeur susceptible de faire échouer la connexion. Supposons que c'est le cas.Nous avons trouvé une erreur possible, comment pouvons-nous la contourner?
Comme l'adresse IP externe du DNS n'aidera pas server1 à trouver l'adresse IP locale sur laquelle passer par le réseau local, avons-nous besoin d'un moyen de le faire, mais heureusement, il existe plusieurs façons de se rendre à Rome.
/etc/hosts
. Quelques informations supplémentaires sur le fichier hôtes, pouvez-vous lire ici.192.168.0.7
.Remarque. Si vous vous le demandiez, il est tout à fait possible d'avoir plus d'adresses IP publiques et de les exécuter sur un petit sous-réseau, par exemple. qui servira également d'interconnexion. Pensé que ce n'est pas très recommandé de le faire.
Clause de non-responsabilité
Cette réponse est basée sur une hypothèse expérimentée: une configuration complète, des journaux Apache et des erreurs manquent dans la réponse. N'hésitez pas à vous améliorer.
Votre approche semble exagérée.
Tous les serveurs Web modernes vous permettront de lier plusieurs sites Web à une seule adresse IP et à un seul port. Ceci est fait en configurant le nom d'en-tête de l'hôte pour les sites respectifs.
De plus, vous pouvez pointer plusieurs sites SSL vers la même adresse IP et le même port (443 ou autre) à l'aide de SNI. Les navigateurs plus anciens ne supportent pas SNI, mais cela ne vous concerne peut-être pas.
Connecter l'un des sites au port 8080, puis câbler un proxy par dessus, est le chemin le plus long, à moins qu'il ne soit explicitement nécessaire que le port 8080 soit exposé à un client.
Étant le type occupé que je suis, je ne passe pas beaucoup de temps sur la configuration d’Apache à moins d’en avoir absolument besoin. Autrement, j'utilise Virtualmin ( http://www.webmin.com/virtualmin.html ) et il gère 85% du travail de nettoyage d'une telle configuration.