Découverte récente
Avec IIS remis au port 80
, lorsque http://localhost/
j'installe sur l'ordinateur WHS, il me donne la page d'avertissement «Il y a un problème avec le certificat de sécurité de ce site Web». Si je «continue» de toute façon, cette URL apparaît https://localhost/Remote/logon?ReturnUrl=%2fremote
pour un accès Web à distance Windows Home Server 2011 pour a username
et password
. Maintenant, je ne m'en souviens pas avec certitude, mais je ne pense pas qu'à l'origine, cela http://localhost/
ait soulevé cette question. Cependant, il semble que cela puisse affecter toutes les tentatives d'accès à localhost (quel que soit le port).
Quel peut être le principal problème
Oh les subtilités du réseautage! Une chose qui ne cessait de me déranger était la raison pour laquelle deux des sites apparaissaient "partiellement" et les autres pas du tout. Ensuite, l'exécution du suivi NET de Firebug m'a révélé que mon principal problème est que mon FAI agit en tant que proxy DNS , et bien sûr, il ne trouve pas mes sites de test. Mais il trouve les deux sites qui sont en direct à l' adresse www.
(non test.
) et semble les servir, mais les images sont bloquées parce que (je suppose) j'ai mis en place des blocs pour accéder aux fichiers image si ce n'est à partir du www.
pour le site particulier.
Cela explique le mystère des images ne montrant pas (attendez-vous à un localhost:8080
appel direct ) et le comportement étrange de trouver "partiellement" ces deux sites spécifiques sur les cinq.
Maintenant, je dois comprendre comment configurer correctement mon routeur ou un fichier proxy pour rediriger vers mon ordinateur WHS. Je suis sur le service Internet par satellite Wildblue, car je suis en dehors de toute connexion de service plus rapide. Ils ont un fichier "optimiseur" (je ne sais pas s'il est visible par tout le monde ou pas, sinon, c'est fondamentalement le même que cette version ), que je pourrai peut-être modifier et mettre sur mon système local pour atteindre ce dont j'ai besoin, mais je ne sais pas exactement ce que je devrais y faire.
Si quelqu'un a des suggestions sur la modification de ce fichier ou sur la façon de configurer mon routeur Linksys E1200 pour éviter d'envoyer au proxy s'il s'agit d'un site local, cela peut être la première (et éventuellement la dernière) étape pour résoudre mes problèmes.
Code représentatif basé sur les recommandations de harrymc ... ne fonctionne toujours pas
Port IIS défini sur :90
.
httdp
fichier:
Listen *:80
ServerName localhost:80
vhosts
fichier:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
Mise à jour précédente: Ce que j'avais cru être la question principale (peut être un problème de sous)
Comment puis-je faire en sorte que Windows Home Server (exécutant IIS) transfère des URL d'hôte local spécifiques au port 8080
afin qu'Apache (et non IIS) fonctionnant sur la même machine récupère la demande pour servir la page?
Le c:\Windows\System32\drivers\etc\hosts
fichier a été modifié (voir ci-dessous), mais je suppose que cela n'a rien à voir avec le réacheminement vers un nouveau port. IIS, je suppose également, récupère la test.whatever
demande d'URL particulière sur le port 80
et l'achemine vers son propre hôte local sur le même port.
J'ai téléchargé Application Request Routing à partir d' une astuce sur un site que j'ai trouvé en recherchant, mais en le regardant, je ne sais pas si cela vous aidera ou non (mon espoir était de configurer une redirection basée sur l'URL pour le porter 8080
). Je suis un concepteur Web, pas un assistant réseau. Alors, comment tout cela fonctionne est quelque peu difficile à comprendre pour moi.
Une direction possible à suivre
Sur la base de ce lien (trouvé après une recherche plus basée sur le premier commentaire d'erikxiv ci-dessous), j'ai tenté ce qui suit dans IIS en tant que réécriture d'URL:
Règle de sortie:
Match: .*
(semblait tester correctement)
Conditions:
Correspond à n'importe lequel de ... (ceux-ci semblaient tester la correspondance de modèle d'accord)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Action de réécriture:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Mais il ne semble toujours pas y avoir de transfert!
Les informations ci-dessous constituent désormais tous les antécédents de la nouvelle demande ci-dessus.
Informations de fond
J'ai récemment changé un ancien bureau qui exécutait Windows XP pour devenir un Windows Home Server (2011). L'ancien ordinateur était également l'hôte des sites de test locaux fonctionnant sur une installation Apache. Faire des recherches a révélé que l'exécution d'Apache sur une machine WHS ne serait pas aussi difficile que je le pensais (de nombreux sites disent que IIS de WHS et Apache causeraient des problèmes, mais certains que j'ai trouvés ne mentionnaient aucun problème s'ils étaient correctement configurés) -fondamentalement, assurez-vous qu'il n'y a pas de conflit de port).
J'ai donc installé un WAMP (version 64 bits) sur l'ordinateur WHS et modifié les paramètres du httpd
fichier de configuration Apache pour écouter au port 8080
afin qu'il n'y ait pas de conflit avec IIS. J'ai configuré mon fichier d'hôte virtuel comme sur l'ordinateur XP, uniquement avec le changement de port également.
Fondamentalement, tout semblait bien fonctionner (cependant, voir la mise à jour), sauf ...
Le problème (original)
Alors que les pages vers les sites locaux fonctionnent très bien et que tous les CSS et Javascript fonctionnent, chaque fichier image ne s'affiche pas . Les informations sur le chemin sont correctes comme en témoigne un clic droit et une sélection View Image Info
(dans Firefox ... d'ailleurs, les images ne s'affichent dans aucun navigateur, donc ce n'est pas un bug de navigateur).
Ce que j'ai remarqué, cependant, c'est que Type
dans la zone d'informations sur l'image s'affiche text/html
, plutôt que PNG Image
ou JPEG Image
etc. Ceci est dans les informations ci-dessous où il montre les informations de chemin (adresse) - dans cette section, il reconnaît que le fichier lui-même est de Type
deux Image
ou Background
.
Mais malgré ce fait, il semble qu'au lieu de reconnaître le type mime correct (je suppose) de l'image dans le html (en fait du HTML généré par php), il essaie plutôt de traiter l'image (que ce soit un img
élément ou un css background-image
) comme texte, et donc ne me donnant rien! Mais je ne peux pas comprendre pourquoi. Le mime
fichier contrôlant les types MIME Apache est correct. Les pages ont les en-têtes suivants ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... mais ceux-ci ne devraient pas être à l'origine du problème (ils ne l'ont pas fait lors de l'exécution sur XP, ni sur le site en direct).
Je recherche donc des réflexions sur:
- Mon analyse du type MIME est-elle le problème correct (basé sur la mise à jour, probablement pas)?
- Où puis-je chercher qui pourrait être à l'origine du problème et comment le corriger? Serait-ce encore un conflit avec IIS sur le WHS, et si oui, quoi? Cela pourrait-il être quelque chose dans le php (cela semble peu probable), et si oui, quoi? Que puis-je faire d'autre dans Apache?
Informations mises à jour (avec plus de problèmes [liés?])
En faisant plus de déconner, je suis arrivé à la conclusion qu'au moins une partie du problème semble être le changement de port :8080
. Tout d'abord, j'ai réalisé que tout n'allait pas aussi bien que je le pensais en accédant à tous mes sites. J'ai cette représentation dans mon c:\Windows\System32\drivers\etc\hosts
dossier:
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
Et cette représentation dans mon vhosts
fichier apache :
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
Voici le comportement : site1
et site4
apparaissent, mais sans images. Les trois autres ne se présentent pas du tout, mais donnent Network Error (dns_unresolved_hostname)
.
Cependant, si j'accéder au premier site dans les vhosts sur la machine WHS en utilisant localhost:8080
l'URL, puis les images n'apparaissent , et quel que soit le site est d' abord dans mon fichier vhosts apparaît également ( ce qui est prévu); cependant, il le fait même si ce n'était pas le cas auparavant (donc si je passe site2
à la première position, il commence à "fonctionner" via l' localhost:8080
appel).
Je sais que mes fichiers d'image renvoient une erreur 403
( corrigée, à l'origine j'ai dit 404 ) lorsqu'ils sont accessibles via la test.site4.com
syntaxe dans l'URL, et je soupçonne que mes images s'affichent text/html
parce que les fichiers renvoient cette erreur (donc je ne le pense pas est un problème de type mime maintenant autant un échec à trouver les images). Mais la chose étrange est que les chemins sont corrects et que les fichiers non-image (javascript et css) se présentent correctement.
Donc, dans mon esprit, il semble que ce soit quelque chose avec le commutateur de port sur 8080
. Mes problèmes sont maintenant:
- Pourquoi mes fichiers hôtes et vhosts ne trouvent-ils pas correctement tous les sites (y a-t-il un autre fichier que je dois modifier sur un serveur Windows Home)?
- Sur ces sites, cela fonctionne, pourquoi les images ne sont-elles pas spécifiquement trouvées (avec l'erreur 403, c'est "interdit" je crois, ce qui n'a aucun sens si les autres fichiers des dossiers du site Web sont autorisés à accéder)?
- Pourquoi l'
localhost:8080
accès fonctionne-t-il quoi qu'il arrive par rapport aux deux premiers problèmes?
Quelques informations supplémentaires
Une demande a été faite pour moi de publier des fichiers journaux. Cependant, j'ai découvert qu'aucun journal ne se produisait sauf (il semble) dans les cas où j'avais accédé via l' localhost:8080
appel direct au site "par défaut".
J'ai donc désactivé les services WAMP, puis je suis allé à l'URL et j'ai découvert le même comportement que lorsque WAMP était en cours d'exécution. Cela semblerait indiquer qu'IIS contrôle toujours les noms de domaine, plutôt qu'Apache les récupérant ( quelqu'un peut-il confirmer mon hypothèse là-bas? ) , Et donc le problème pourrait bien être quelque chose de toujours à obtenir le contrôle lui-même sur le serveur WAMP.