Obtenha o host local do Windows (porta 80) para encaminhar para a porta 8080 para o serviço Apache

Obtenha o host local do Windows (porta 80) para encaminhar para a porta 8080 para o serviço Apache

Descoberta recente

Com o IIS configurado de volta para port 80, quando eu instalo http://localhost/no computador WHS, aparece a página de aviso "Há um problema com o certificado de segurança deste site". Se eu "Continuar" de qualquer maneira, esse URL aparecerá https://localhost/Remote/logon?ReturnUrl=%2fremotepara um Acesso Web Remoto do Windows Home Server 2011 para um usernamee password. Agora, não consigo me lembrar com certeza, mas não acredito que originalmente apenas tenha http://localhost/levantado 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, as complexidades da rede! Uma coisa que sempre me incomodava era por que dois dos sites apareciam "parcialmente" e os outros não apareciam. Então, executar o rastreamento NET do Firebug me revelou quemeu principal problema é que meu ISP está agindo como proxy DNS, e é claro que não está encontrando meus sites de teste. Mas ele encontra os dois sites que estão ativos no endereço www.(não test.) e parece atendê-los, mas as imagens estão bloqueadas porque (presumo) eu configurei bloqueios para acessar os arquivos de imagem, se não do para www.o determinado site.

Isso explica o mistério das imagens não mostradas (espera-se em localhost:8080chamada direta) e o comportamento estranho em encontrar "parcialmente" esses dois locais específicos dos cinco.

Agora preciso descobrir como configurar corretamente meu roteador ou um arquivo proxy para redirecionar de volta ao meu computador WHS. Estou no serviço de Internet via satélite Wildblue, pois estou fora da área de conexões de serviço mais rápidas. Eles têm umarquivo "otimizador"(Não sei se está visível para todos ou não, se não, ébasicamente igual a esta versão), que posso modificar e colocar em meu sistema local para conseguir o que preciso, mas não tenho certeza do que exatamente preciso fazer lá.

Se alguém tiver alguma sugestão sobre como modificar esse arquivo ou como configurar meu roteador Linksys E1200 para evitar o envio para o proxy se for um site local, esse pode ser o primeiro (e possivelmente o último) passo para resolver meus problemas.

Código representativo baseado nas recomendações de Harrymc... ainda não funciona

Porta IIS definida como :90.

httdparquivo:

Listen *:80
ServerName localhost:80

vhostsarquivo:

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 eutinha acreditadoser o problema principal (pode ser um subproblema)

Como faço para que o Windows Home Server (executando o IIS) encaminhe URLs de host local específicos para a porta, 8080para que o Apache (não o IIS) em execução na mesma máquina selecione a solicitação para atender a página?

O c:\Windows\System32\drivers\etc\hostsarquivo foi alterado (veja abaixo), mas presumo que não tenha nada a ver com o redirecionamento para uma nova porta. O IIS, também presumo, está captando a test.whateversolicitação de URL específica na porta 80e roteando para seu próprio host local na mesma porta.

Eu baixeiRoteamento de solicitação de aplicativodeuma dica de um site que encontreina pesquisa, mas olhando para isso, não tenho certeza se isso vai ajudar ou não (minha esperança era configurar algum encaminhamento baseado em URL para portar 8080por meio dele). Sou um web designer, não um assistente de rede. Então, como tudo isso funciona é um tanto evasivo para mim.

Uma possível direção a seguir

Baseado emesse 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 ter testado bem)

Condições:

Corresponder a qualquer um de... (estes pareciam testar a correspondência de padrões, ok)

{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 agora são o pano de fundo da nova solicitação acima.


Informações básicas

Recentemente, mudei um desktop antigo que executava o Windows XP para um Windows Home Server (2011). O computador antigo também hospedava sites de teste locais executados em uma instalação do Apache. Fazer algumas pesquisas revelou que executar o Apache em uma máquina WHS não seria tão difícil quanto pensei inicialmente (muitos sites dizem que o IIS do WHS e do Apache causaria problemas, mas alguns que encontrei não mencionaram nenhum problema se configurados corretamente- -basicamente, certifique-se de que não haja conflito de porta).

Então eu instalei umWAMP(versão de 64 bits) para o computador WHS e alterou as configurações no httpdarquivo de configuração do Apache para escutar na porta, 8080para que não houvesse conflito com o IIS. Eu configurei meu arquivo 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 questão (original)

Embora as páginas dos sites locais funcionem bem e todos os CSS e JavaScript estejam funcionando,todo arquivo de imagem não está aparecendo.A informação do caminho está corretaconforme evidenciado clicando com o botão direito e selecionando View Image Info(no Firefox... aliás, as imagens não aparecem em nenhum navegador, então não é um bug do navegador).

O que notei, no entanto, é que a Typecaixa de informações da imagem está mostrando text/html, em vez de PNG Imageou JPEG Imageetc. Isso está nas informações abaixo, onde mostra as informações do caminho (endereço) - nessa seção, ele reconhece que o próprio arquivo é de Typeum Imageou de outro Background.

Mas, apesar desse fato, parece que, em vez de reconhecer o tipo MIME correto (presumo) da imagem dentro do html (na verdade, html gerado pelo php), ele está tentando processar a imagem (seja um imgelemento ou um css background-image) como texto, e assim não me dando nada! Mas não consigo descobrir por quê. O mimearquivo 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 deveriam estar causando o problema (não causaram durante a execução no XP, nem no site ativo).

Então, estou buscando pensamentos sobre:

  1. Minha análise do tipo MIME é o problema correto (com base na atualização, provavelmente não)?
  2. Onde mais posso procurar a causa do problema e como corrigi-lo? Ainda poderia haver um conflito com o IIS no WHS e, em caso afirmativo, o quê? Poderia ser alguma coisa no php (isso parece improvável) e, em caso afirmativo, o quê? O que mais posso verificar no Apache?

Informações atualizadas (com mais problemas [relacionados?])

Fazendo mais algumas brincadeiras, cheguei à conclusão de que pelo menos parte do problema parece ser a mudança para port :8080. Primeiro, percebi que nem tudo estava tão bem quanto eu pensava ao acessar todos os meus sites. Eu tenho esta representação em meu c:\Windows\System32\drivers\etc\hostsarquivo:

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 vhostsarquivo 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: site1e site4estão aparecendo, mas sem imagens. Os outros três não aparecem, mas dão Network Error (dns_unresolved_hostname).

Porém, se eu acessar o primeiro site nos vhosts na máquina WHS usando localhost:8080na url,então as imagensfazermostrar-se, e o site que estiver primeiro no meu arquivo vhosts também aparecerá (o que é esperado); no entanto, ele faz isso mesmo que antes não o fizesse (então, se eu passar site2para a primeira posição, ele começa a "funcionar" via localhost:8080chamada).

Eu sei que meus arquivos de imagem estão retornando um 403(corrigido, originalmente eu disse 404) erro quando acessado via test.site4.comsintaxe no URL, e suspeito que minhas imagens estão aparecendo porque text/htmlos arquivos estão retornando esse erro (então não acho que seja um problema do tipo MIME agora, mas sim uma falha em encontrar as imagens ). Mas o estranho é que os caminhos estão corretos e os arquivos que não são de imagem (javascript e css) estão funcionando bem.

Então, na minha opinião, parece que talvez seja algo com a mudança de porta para 8080. Meus problemas agora são:

  1. Por que meus arquivos hosts e vhosts não encontram corretamente todos os sites (existe algum outro arquivo que preciso modificar em um Windows Home Server)?
  2. Nesses sites funciona, por que as imagens especificamente não são encontradas (com o erro 403, que é "proibido", acredito, o que não faz sentido se os outros arquivos nas pastas do site tiverem acesso permitido)?
  3. Por que o localhost:8080acesso funciona de qualquer maneira em relação às duas primeiras questões?

Algumas informações adicionais

Foi feita uma solicitação para que eu postasse arquivos de log. No entanto, descobri que não ocorreram registros, exceto (ao que parece) nos casos em que acessei por meio de localhost:8080chamada direta para o site "padrão".

Então desliguei os serviços WAMP, fui até 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 os selecionar (alguém pode confirmar minha suposição aí?)e, portanto, o problema ainda pode ser algo relacionado à obtenção do controle do servidor WAMP.

Responder1

Você talvez tenha um arquivo .htaccess que esteja fazendo com que as imagens sejam veiculadas como texto/html?

 <filesMatch "\.(htm|html|css|js|png|jpg)$">
 ForceType 'text/html; charset=UTF-8'
 </filesMatch>

Responder2

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. Suspeito que possa ser simplesmente um problema de nome de domínio ou seu site pode usar caminhos absolutos para imagens (apenas supondo...) que o Apache trata incorretamente

Responder3

O segmentoRedirecionamento do IIS para Apachecontém uma solução muito simples, que vai na direção oposta à sua.

O redator da última entrada diz que os redirecionamentos no IIS são muito limitados para realizar o trabalho.

Usando a solução dele, você configuraria o IIS para receber solicitações de outra porta que não a 80, por exemplo 90. Em seguida, colocaria o Apache como receptor para as 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.

Responder4

você precisa ter

<directory>
</directory>

antes </VirtualHost>de permitir.

algo assim

<Directory "C:\Apache24\htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

eu uso 192.168.1.100:80 para iis e 192.168.1.200:8080 para apache nas configurações do protocolo da Internet v4 IPv4 (configurações de IP avançadas) tenho 2 classes C ip 192.168.1.100 e adicione 192.168.1.200 isso também ajuda no SEO por causa da classe Endereços C IP para 2 sites diferentes vinculados entre si.

informação relacionada