Descoberta recente
Com o IIS configurado de volta à porta 80
, quando coloco http://localhost/
o computador WHS, a página de aviso "Há um problema com o certificado de segurança deste site". Se eu "continuar" de qualquer maneira, esse URL será exibido https://localhost/Remote/logon?ReturnUrl=%2fremote
em um Acesso via Web Remoto do Windows Home Server 2011 para username
e password
. Agora, não me lembro com certeza, mas não acredito que originalmente apenas http://localhost/
tenhamos trazido essa questão. No entanto, parece que isso pode afetar qualquer tentativa de acessar o host local (não importa a porta).
Qual pode ser realmente o principal problema
Oh, os meandros da rede! Uma coisa que me incomodava era o motivo pelo qual dois sites "apareciam" parcialmente e os outros não. Em seguida, executar o rastreamento NET do Firebug me revelou que meu principal problema é que meu ISP está atuando como proxy DNS e, é claro, não está encontrando meus sites de teste. Mas ele faz encontrar os dois sites que são ao vivo no www.
(não test.
) endereço, e parece servir-se aqueles, mas as imagens são bloqueados porque (presumo) que criaram blocos para acessar os arquivos de imagem se não da www.
para o site em particular.
Isso explica o mistério das imagens que não são exibidas (espere por localhost:8080
ligação direta ) e o comportamento estranho de encontrar "parcialmente" esses dois locais específicos dos cinco sites.
Agora preciso descobrir como configurar corretamente meu roteador ou um arquivo proxy para redirecionar para o meu computador WHS. Estou no serviço de internet via satélite Wildblue, pois estou fora da área de qualquer conexão de serviço mais rápida. Eles têm um arquivo "otimizador" (não sei se é visível para todos ou não; se não, é basicamente o mesmo que esta versão ), que posso modificar e colocar no meu sistema local para obter o que eu preciso, mas não sei exatamente o que preciso fazer lá.
Se alguém tiver alguma sugestão sobre a modificação desse arquivo ou sobre como configurar meu roteador Linksys E1200 para evitar o envio ao proxy se for um site local, esse pode ser o primeiro (e possivelmente o último) passo para resolver meus problemas.
Código representativo com base nas recomendações da harrymc ... ainda não está funcionando
Porta do IIS definida como :90
.
httdp
Arquivo:
Listen *:80
ServerName localhost:80
vhosts
Arquivo:
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>
Atualização anterior: O que eu acreditava ser o problema principal (pode ser um problema secundário)
Como faço para o Windows Home Server (executando o IIS) encaminhar URLs de host local específicos para a porta, 8080
para que o Apache (não o IIS) em execução na mesma máquina atenda à solicitação para servir a página?
O c:\Windows\System32\drivers\etc\hosts
arquivo foi alterado (veja abaixo), mas presumo que isso não tenha nada a ver com o redirecionamento para uma nova porta. O IIS, também presumo, está captando a test.whatever
solicitação de URL específica na porta 80
e roteando para seu próprio host local na mesma porta.
Eu baixei o Application Request Routing de uma dica em um site que encontrei na pesquisa, mas, ao analisá-lo, não tenho certeza se isso ajudará ou não (minha esperança era configurar algum encaminhamento baseado em URL para a porta 8080
por ele). Eu sou um web designer, não um assistente de rede. Então, como tudo isso funciona é algo ilusório para mim.
Uma possível direção a seguir
Com base neste link (encontrado depois de pesquisar mais com base no primeiro comentário do erikxiv abaixo), tentei o seguinte no IIS como uma reescrita de URL:
Regra de saída:
Correspondência: .*
(parecia testar bem)
Condições:
Corresponder a qualquer um ... (estes pareciam testar a correspondência de padrões)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Ação de reescrita:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Mas parece que ainda não há encaminhamento!
As informações abaixo estão agora em segundo plano, por trás da nova solicitação acima.
Informações de fundo
Recentemente, mudei uma área de trabalho antiga que estava executando o Windows XP para ser um Windows Home Server (2011). O computador antigo também era o host dos sites de teste locais em execução na instalação do Apache. Fazendo uma pesquisa, revelou que executar o Apache em uma máquina WHS não seria tão difícil quanto eu pensava (muitos sites dizem que o IIS do WHS e Apache causaria problemas, mas alguns que eu encontrei não mencionaram problemas se configurados corretamente - (basicamente, verifique se não há conflito de portas).
Então, instalei um WAMP (versão de 64 bits) no computador WHS e alterei as configurações no httpd
arquivo de configuração do Apache para escutar na porta, 8080
para que não houvesse conflito com o IIS. Eu configurei meu arquivo de host virtual como no computador XP, apenas com a mudança de porta também.
Basicamente, tudo parecia estar funcionando bem (no entanto, consulte a atualização), exceto ...
A edição (original)
Enquanto as páginas dos sites locais ficam bem, e todos os css e javascript estão funcionando, todos os arquivos de imagem não são exibidos . As informações do caminho estão corretas, como evidenciado ao clicar com o botão direito e selecionar View Image Info
(no Firefox ... a propósito, as imagens não são exibidas em nenhum navegador, portanto, não é um bug do navegador).
O que eu notei, no entanto, é que a Type
caixa de informações da imagem está sendo exibida text/html
, em vez de PNG Image
ou JPEG Image
etc. Esta é a informação abaixo onde mostra as informações do caminho (endereço) - nessa seção, ele reconhece que o próprio arquivo é de Type
um Image
ou de Background
.
Mas, apesar desse fato, parece que, em vez de reconhecer o tipo mime correto (presumo) da imagem no html (na verdade, o hpml gerado pelo php), ele está tentando processar a imagem (seja um img
elemento ou um css background-image
) como texto e, portanto, não me dá nada! Mas não consigo descobrir o porquê. O mime
arquivo que controla os tipos MIME do Apache está correto. As páginas têm os seguintes cabeçalhos ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... mas eles não devem estar causando o problema (eles não estavam sendo executados no XP nem no site ativo).
Então, estou buscando pensamentos sobre:
- Minha análise do tipo mime está sendo o problema correto (com base na atualização, provavelmente não)?
- Onde mais posso procurar que possa estar causando o problema e como corrigi-lo? Ainda poderia haver um conflito com o IIS no WHS e, em caso afirmativo, o que? Poderia ser algo no php (isso parece improvável), e se sim, o que? O que mais posso verificar no Apache?
Informações atualizadas (com mais problemas [relacionados?])
Fazendo um pouco mais de confusão, cheguei à conclusão de que pelo menos parte do problema parece ser a mudança de porta :8080
. Primeiro, percebi que nem tudo estava bem como pensei em acessar todos os meus sites. Eu tenho essa representação no meu c:\Windows\System32\drivers\etc\hosts
arquivo:
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
E esta representação no meu vhosts
arquivo 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>
Aqui está o comportamento : site1
e site4
estão aparecendo, mas sem imagens. Os outros três não aparecem, mas cedem Network Error (dns_unresolved_hostname)
.
No entanto, se eu acessar o primeiro site nos vhosts na máquina WHS usando localhost:8080
na url, em seguida, as imagens não aparecem , e qualquer que seja o local é o primeiro no meu arquivo vhosts também aparece (que se espera); no entanto, faz isso mesmo que não fosse anteriormente (por isso, se eu passar site2
para a primeira posição, ele começará a "trabalhar" por localhost:8080
chamada).
Sei que meus arquivos de imagem estão retornando um erro 403
( corrigido, originalmente eu disse 404 ) quando acessado via test.site4.com
sintaxe no URL, e suspeito que minhas imagens estejam aparecendo como text/html
porque os arquivos estão retornando esse erro (por isso não acho que é um problema do tipo mime agora, tanto por não encontrar as imagens). Mas o mais estranho é que os caminhos estão corretos e os arquivos sem imagem (javascript e css) estão surgindo bem.
Então, na minha opinião, talvez pareça algo com o switch de porta 8080
. Meus problemas agora são:
- Por que meus arquivos hosts e vhosts não estão encontrando corretamente todos os sites (há algum outro arquivo que preciso modificar em um Windows Home Server)?
- Nesses sites, por que as imagens não são encontradas especificamente (com o erro 403, isso é "proibido", acredito, o que não faz sentido se os outros arquivos nas pastas do site estão sendo autorizados a acessar)?
- Por que o
localhost:8080
acesso funciona, não importa em relação às duas primeiras questões?
Algumas informações adicionais
Foi feita uma solicitação para eu publicar arquivos de log. No entanto, descobri que não havia logs ocorrendo, exceto (parece) naqueles casos em que eu havia acessado via localhost:8080
chamada direta para o site "padrão".
Então, eu desliguei os serviços WAMP, fui para os URLs e descobri o mesmo comportamento de quando o WAMP estava em execução. Isso parece indicar que o IIS ainda está controlando os nomes de domínio, em vez de o Apache buscá-los ( alguém pode confirmar minha suposição lá? ) , E, portanto, o problema pode ser algo ainda em obter o controle próprio para o servidor WAMP.
Respostas:
Você talvez tenha um arquivo .htaccess que esteja fazendo com que as imagens sejam veiculadas como texto / html?
fonte
.htaccess
arquivos e nenhumForceType
no código.Se você puder fornecer seus arquivos access.log (pelo menos algumas linhas mostrando o status 404 para as solicitações de imagem), poderemos verificar o que está errado. Eu suspeito que isso possa ser simplesmente um problema de nome de domínio ou seu site pode usar caminhos absolutos para imagens (apenas supondo ...) que o apache lida incorretamente
fonte
localhost
acesso direto . Então, desliguei o servidor WAMP completamente e descobri que estava obtendo os mesmos resultados. O que parece indicar que o Apache não está lidando com as solicitações, mas o IIS está.O segmento que o IIS redireciona para o Apache contém uma solução muito simples, que segue na direção oposta à sua.
O gravador da última entrada diz que os redirecionamentos no IIS são muito limitados para fazer o trabalho.
Usando sua solução, você configuraria o IIS para receber solicitações de outra porta que não seja 80, por exemplo 90. Em seguida, coloque o Apache como receptor das portas 80 e 8080, com um redirecionamento da porta 80 para a porta 90. O Apache aparentemente consegue fazer o que o IIS não pode.
fonte
ourdomain.dom
é algo específico para o meu computador ou não (ou é apenas um nome arbitrário, já que ele estava lidando com subdomínios ... deveria ser o meulocalhost
?). Além disso, no primeiro link, oour.ip.addess
para o roteamento para o IIS será o mesmo para o servidor Apache, pois eles estão no mesmo computador (apenas uma porta diferente). Isso não deve causar problemas, certo?Como você o localizou para um problema de DNS, o resultado básico é que você precisa de um servidor DNS local que possa ser configurado. Você também mencionou um roteador Linksys E1200 e o Windows Home Server, para que você possa seguir duas abordagens.
Primeiro, você pode considerar executar um firmware de terceiros (por exemplo, DD-WRT, OpenWRT, Tomato) no seu roteador. O que você possui está usando um chipset Broadcom e deve ter flash adequado; O DD-WRT lista como suportado. Minha maior preocupação é que, de alguma forma, a comunidade de firmware de roteadores de terceiros pareça ter evoluído até o ponto em que é como tentar executar o Linux no início dos anos 90. Você pode tentar percorrer os fóruns para encontrar o que precisa, mas não confie no banco de dados do roteador no site DD-WRT, pois ele direcionará você para as coisas erradas. No geral, essa opção não me enche de confiança e, a menos que você tenha um segundo roteador disponível, não tenho certeza se posso recomendá-lo, a menos que você goste de ajustar esse tipo de coisa.
Segundo, você pode fazer RDP no WHS e ativar o servidor DNS, conforme descrito neste tópico do fórum. Abordagem básica, entrada RDP, painel de controle, Adicionar / remover programas, adicionar / remover componentes do Windows (botão), marque a caixa de seleção Servidor DNS e saia novamente. O que não tenho certeza é se você obtém o console de gerenciamento DNS com isso, e não tenho uma caixa WHS para testá-lo. Se você conseguir esse console, ele estará em Ferramentas Administrativas / DNS. Para usá-lo como quiser, você precisará adicionar novas zonas de encaminhamento; para o tipo de coisa que você está fazendo, eu adicionaria uma zona para cada host (por exemplo, uma zona para www.samplesite.whatever) e, em seguida, adicionaria uma entrada de registro A sem nome especificado, o que o tornará o padrão para isso. zona. A outra abordagem seria adicionar uma zona para samplesite.whatever e, em seguida, adicionar registros A nomeados (por exemplo, "www" ou "mail"), mas isso pode acabar bloqueando coisas que você não deseja bloquear. A zona mais segmentada evita que você afete coisas que não deseja redirecionar. Você apontará todos os seus sistemas para esta caixa como o servidor DNS. Por padrão, isso fará sua própria resolução DNS externa, ignorando completamente os servidores DNS do seu ISP; se você quiser usá-los como o próximo estágio, poderá especificar seus endereços como Encaminhadores nas propriedades do servidor DNS (clique com o botão direito do mouse e procure).
Terceiro, se a opção Dois não funcionar e a opção Um o assusta, você pode configurar uma caixa Linux internamente e configurá-la como um servidor DNS. Há muitas instruções por aí sobre como fazê-lo; uma pesquisa superficial revelou este artigo de Mark Kolich que parece ser instruções decentes para fazer exatamente isso. Se você estiver disposto, isso também poderá oferecer os recursos necessários para você experimentar a hospedagem baseada em Linux (a menos que esteja desenvolvendo o Windows, por exemplo, .NET ou similares).
Essa comparação da Wikipedia de servidores DNS também pode ser útil. É possível notar que o Simple DNS Plus (comercial), Posadis (gratuito, obsoleto? 2004), MaraDNS (gratuito, não GUI, vale a pena olhar) e Unbound (gratuito, possui downloads binários do Windows, não foi mais longe) . Tudo isso deve ser executado no Windows.
fonte
C:\Windows\System32\drivers\etc
arquivo já foi o que eu modifiquei, mas ainda não parece estar sendo escolhido na definição dos sites locais. O artigo parece indicar que o arquivo é usado64-bit
nativamente e32-bit
por redirecionamento. Como isso pode afetar minha instalação do Apache e por quelocalhost
é ignorado nos meus sites locais?você precisa ter
antes
</VirtualHost>
de permitir.algo assim
Eu uso 192.168.1.100:80 para iis e 192.168.1.200:8080 para apache nas Configurações IPv4 do Protocolo da Internet v4 (Configurações avançadas de IP) têm 2 classe C ip 192.168.1.100 e adicionamos 192.168.1.200 isso também ajuda no SEO por causa da classe Endereços IP para 2 sites diferentes com links entre si.
fonte