Existe uma maneira de impedir que sites em um servidor de desenvolvimento web Apache localhost acessem a Internet?

5

Estou usando o Uniserver para desenvolvimento web PHP e estou executando o windows 8.1 e tenho o Kaspersky instalado no sistema.

A maior parte do meu trabalho envolve trabalhar em sites do WordPress.

Arquivos principais do Wordpress e alguns arquivos CSS e JavaScript (por exemplo, fontes CDN JavaScript ou Google) que exigem uma conexão com a Internet para funcionar.

Quando a Internet está lenta, ou até mesmo inativa, minhas páginas demoram muito tempo para serem carregadas, enquanto esperam que as fontes do Google, recursos de CDN, etc., sejam carregados; até que às vezes expira. Isso é frustrante, ao mesmo tempo em que estou desenvolvendo, e preciso atualizar de novo e de novo.

No entanto, se eu desligar completamente a Internet - desconectando o WiFi - ele carrega instantaneamente, pois não há Internet presente, e as páginas não esperam até que ocorra um tempo limite.

Normalmente, durante o desenvolvimento, gostaria de carregar as páginas instantaneamente, mesmo que as fontes não funcionem e os arquivos CDN voltem aos arquivos locais.

Mas não consigo desativar o Interent, pois preciso do Google o tempo todo.

Existe mesmo assim - por meio de firewalls ou alguma configuração do Apache - para bloquear a Internet de sites em localhost ? Então, minha página é carregada mais rápido durante o desenvolvimento?

    
por Jashwant 27.05.2015 / 10:09

7 respostas

8

Estas são as configurações a serem consideradas no navegador da web Chrome:

  • crie um novo perfil (nova pessoa no pessoal) especialmente para desenvolvimento (para que suas configurações possam ser separadas dos outros perfis),
  • Desative Pré-busca de recursos para carregar páginas mais rapidamente nas configurações de privacidade e quaisquer outras opções que possam gerar solicitações desnecessárias (como serviço de previsão , um serviço da web para ajudar a resolver erros de navegação , etc.),

ou basicamente use o Firefox e Trabalhe Offline ou diminua o valor network.http.connection-timeout em about:config .

Aqui estão as sugestões para o seu site WordPress:

  • use a agregação e a minimização de arquivos JS, CSS, se possível. Assim, em vez de dezenas de solicitações, você tem apenas um,
  • se você estiver usando arquivos JS / CSS remotos, desative os plug-ins temporários que estão lidando com eles (Google Analytics), faça um novo upload deles localmente ou considere usar alternativas locais (por exemplo, Google Analytics - > Open Web Analytics ),
  • verifique se realmente você não tem solicitações ausentes (como arquivos de imagem ausentes) que funcionam em seu ambiente principal - quando as imagens estão faltando, elas podem acionar o próprio código CMS, reduzindo o carregamento da página,
  • instale caches PHP (como XCache) e memcached para acelerar ainda mais o seu ambiente de desenvolvimento.

Considere o uso de proxy:

  • use o Proxy simples, onde você pode curtir o tempo limite (já que provavelmente não é possível configurar o tempo limite no Chrome ) ,
  • use um proxy transparente, como squid ou varnishd (que armazenaria em cache os arquivos remotos e forneceria a cópia local com rapidez suficiente).

Outras sugestões:

  • se você possui hosts remotos específicos que estão retardando o carregamento da página, você pode adicioná-los em /etc/hosts , por exemplo:

    127.0.0.1 google-analytics.com ssl.google-analytics.com
    

    Isso os tratará como se fossem locais sem ter que mudar nada. Então, ou forneça cópia local deles ou o tempo limite será mais rápido.

  • configure seu firewall para rejeitar conexões com hosts específicos.

por 30.05.2015 / 13:42
2

Quando a Internet está desativada, o Chrome aparentemente usa o cache off-line, É por isso que a navegação é rápida para esses arquivos (provavelmente CSS, etc.).

Uma ideia: Se o site do Apache estiver no localhost, Inicie o Chrome com um servidor proxy inexistente para todos os sites, exceto para localhost, com parâmetros como:

 --proxy-server="127.0.0.1:1234" --proxy-bypass-list:localhost

Isso efetivamente bloqueará o acesso à Internet, enquanto deixa o Apache aberto no localhost, que é o mesmo efeito que o seu desligamento do WiFi. O Chrome voltará para a página em cache, conforme encontrado no cache off-line. Você pode, portanto, criar um atalho para o Chrome com esses parâmetros ao usar o site Apache local.

Para mais informações, consulte:

por 30.05.2015 / 12:56
1

Se eu entendi seu problema corretamente, você está errado. Fontes e scripts não são baixados pelo apache. A página da Web é exibida uma vez e os locais das fontes e scripts são especificados na resposta do servidor. Cabe ao navegador buscar os arquivos especificados na resposta. Portanto, bloquear o acesso do apache à Internet não é uma solução. Você precisa alterar sua política de pagamento na página.

    
por 30.05.2015 / 01:24
1

Você não pode colocar seu navegador no modo de trabalho offline porque o seu navegador precisa de um acesso on-line à URL do host local (que é servida pelo seu servidor apache local - mas o seu navegador não sabe disso).

Os arquivos principais externos serão carregados pelo seu navegador, não pelo seu servidor apache. Você pode tentar bloquear o acesso a urls específicas desses arquivos principais externos de serem carregados pelo seu navegador. O bloqueio pode ser feito de várias maneiras, incluindo o uso de proxy com regras personalizadas, como sugerido por Vinayak nos comentários.

Eu pessoalmente sugiro usar o Adblock Plus com seu Chrome ( Chrome Web Store link . No Adblock Plus, especifique regras para bloquear esses arquivos principais externos para que o seu navegador não tente carregá-los. Tente usar a opção de domínio para bloquear apenas os URLs carregados da sua página localhost , por exemplo,

||google.com^$domain=localhost

Apenas desative o Adblock quando quiser que esses arquivos sejam carregados.

    
por 30.05.2015 / 06:56
1

Existem algumas opções - executar um ambiente de desenvolvimento real em uma VM - e você pode executá-lo apenas no nat. Não é tão leve quanto executá-lo localmente, eu acho

inteligente uso de adblock - crie conjuntos de regras específicos para bloquear recursos que você não deseja carregar. Isso pode funcionar fora dos sites que você possui, mas é algo que você pode desligar e ligar à vontade. ublock é o meu atual adblock de escolha, e tem essa opção de eyedropper puro para elementos

Se você quiser algo que apenas afeta os sites em que você trabalha, talvez use scripts js do lado do usuário em qualquer host que hospede no host local que desviará esses elementos - tampermonkey / greasemonkey pode funcionar. Não tenho certeza se alguém já fez isso antes.

    
por 02.06.2015 / 10:23
0

Você mencionou firewalls - eu gostaria de usar o iptables para isso. Você pode facilmente criar scripts em um modo on-line / off-line, mas se bloquear o tráfego na camada do sistema operacional, não precisará se preocupar se algo é um artefato do navegador, do servidor da Web ou de qualquer outra camada acima dele.

Apenas certifique-se de estar familiarizado o suficiente com o iptables; não é difícil bloquear-se completamente de um servidor se você acabar DENYing ou REJECTING ssh, por exemplo.

    
por 04.06.2015 / 19:10
0

Você pode desabilitar o acesso à internet permitindo apenas arquivos localhost via arquivo .htaccess.

Experimente: CRIE um novo arquivo chamado exatamente .htaccess no htdocs ou no diretório raiz do seu projeto. COPY-PASTE o código abaixo para este arquivo .htaccess ...

Order deny, allow
Deny from all
Allow from localhost

Isso é principalmente tudo. Se você não pode criar o arquivo .htaccess, baixe-o aqui (formato winrar):

[ ::: link :: :]

    
por 04.06.2015 / 20:33