Selecionando o modo operacional do servidor web com base na experiência pessoal. Noções básicas de aplicações web O que é necessário para um servidor web funcionar

Se você digitar http://www.site/how-web-server-work/ na barra de endereços do seu navegador e pressionar a tecla Enter, esta página do nosso site aparecerá na tela.

No nível mais básico, aconteceu o seguinte: seu navegador formou uma conexão com o servidor Web, enviou uma solicitação para obter a página da página e a recebeu.

Agora um pouco mais de detalhes:

O URL consiste em três partes:

1. Protocolo (http)

2. Nome do servidor (www.site)

3. Endereços de páginas (como funciona o servidor web)

O navegador entra em contato com o servidor de nomes de domínio para traduzir o nome do site www.site em endereço de IP, que ele usa para se conectar à máquina servidora. O navegador então faz uma conexão com o servidor Web no endereço IP especificado na porta 80 ou qualquer outro, se assim for pretendido (discutiremos as portas posteriormente neste artigo).

Seguindo o protocolo HTTP, o navegador enviou uma solicitação ao servidor, solicitando o arquivo http://www.site/how-web-server-work/

Observe que biscoitos também pode ser enviado do navegador para o servidor.

Em resposta, o servidor gerou página web dinâmica e enviou de volta o texto HTML para exibir esta página em seu navegador. Biscoitos também pode ser enviado do servidor para o navegador no cabeçalho da página. O navegador lê as tags HTML e produz a saída da página da Web na tela.

Internet

Então, o que é a “Internet”? A Internet consiste em centenas de milhões de computadores conectados entre si em rede de computadores. Uma rede permite que todos os computadores se comuniquem entre si. Computador de casa pode ser conectado à Internet usando o máximo jeitos diferentes e dispositivos - começando com um modem primitivo para linha telefônica, carregando uma conexão via rede local (LAN) com provedor de Internet ( ISP).

Os principais provedores de serviços de Internet oferecem suporte a linhas de fibra óptica para um país ou região inteiro. As redes backbone são instaladas em todo o mundo, conectadas através de linhas de fibra óptica, cabos submarinos ou links de satélite. Assim, cada computador na Internet está conectado a todos os outros computadores na Internet.

Clientes e Servidores

Em geral, todos os computadores na Internet podem ser divididos em duas categorias: servidores e clientes. Os computadores que fornecem serviços (como servidores Web, servidores FTP, serviços em nuvem) para outras máquinas são servidores. As máquinas usadas para se conectar a esses serviços são - clientes. Quando você se conecta ao Google para realizar uma consulta de pesquisa ou usar qualquer um de seus serviços, o Google fornece seu computador (possivelmente um cluster inteiro de computadores poderosos) para atender sua solicitação. Portanto, o Google fornece o servidor. Sua máquina também pode fornecer serviços para alguém na Internet. Assim, a máquina do usuário geralmente é um cliente, embora também possa se tornar um servidor, se necessário.

Um servidor pode fornecer um ou mais serviços na Internet. Por exemplo, um computador servidor pode ter software instalado que lhe permite atuar como servidor Web, servidor de e-mail e servidor FTP. Os computadores clientes que ingressam no servidor direcionam suas solicitações para software especial executado em um computador servidor compartilhado. Por exemplo, se você usar um navegador da Web no seu computador, ele “conversará” com o servidor da Web no computador servidor. Seu aplicativo de e-mail “conversará” com o servidor E-mail, e assim por diante.

Endereços IP

Para conectar todas essas máquinas em uma rede, cada computador na Internet possui um endereço exclusivo chamado endereço de IP. Um endereço IP típico é assim:

Os quatro números em um endereço IP são chamados octetos pois podem assumir valores entre 0 e 255 ou 28 valores possíveis.

Cada computador na Internet possui seu próprio endereço IP exclusivo. O servidor possui um endereço IP estático que raramente muda. Um computador doméstico geralmente possui um endereço IP atribuído pelo ISP quando a máquina se conecta a ele. Este endereço IP é exclusivo para esta sessão, mas pode ser diferente na próxima vez. Dessa forma, o ISP precisa apenas de um endereço IP para cada roteador que suporta, e não para cada cliente.

Se você estiver em uma máquina Windows, poderá visualizar muitas informações sobre a Internet em seu computador, incluindo seu endereço IP e nome de host atuais, usando o comando ipconfig. Em uma máquina UNIX, você precisa digitar nslookup V linha de comando para exibir o endereço IP da máquina.

Nomes de domínio

Como a maioria das pessoas tem dificuldade em lembrar a sequência de números que compõem os endereços IP, e como os endereços IP às vezes precisam ser alterados, todos os servidores e sites na Internet também têm nomes legíveis chamados nomes de domínio. Por exemplo, www.. Isso é mais fácil para a maioria de nós lembrar www.site do que lembrar 5.9.205.233

O nome www.site na verdade consiste em três partes:

1. Nome da World Wide Web (www). Na verdade, você pode fazer isso sem especificar explicitamente “www”, embora, formalmente, esta seja uma rede diferente.

2. Nome de domínio (qriosidade)

3. Na zona de domínio de nível superior (ru)

Nomes de domínio gerenciar Registradores de nomes de domínio. Os registradores criam nomes de domínio de nível superior e garantem que todos os nomes na zona de nível superior do domínio sejam exclusivos. O registrador também fornece informações de contato para cada nome de domínio e lança o serviço quem é, indicando o proprietário do domínio. O nome do host é criado pelo proprietário do domínio.

Servidores de nomes de domínio

Um conjunto de servidores chamado servidores de nomes de domínio(DNS) mapeia nomes legíveis em endereços IP. Esses servidores contêm bancos de dados simples de nomes e endereços IP e são distribuídos pela Internet. A maioria das empresas individuais, provedores de serviços de Internet e grandes universidades oferecem suporte a DNS pequenos. Existem também DNSs centrais que usam dados fornecidos por registradores de nomes de domínio.

Quando você insere o URL http://www..site e o passa para o servidor de nomes de domínio, o servidor retorna o endereço IP correto para www.site. Vários servidores de nomes podem estar envolvidos na obtenção do endereço IP correto.

Então, vamos repetir o que lemos: a Internet consiste em milhões de máquinas, cada uma com um endereço IP único. Muitos desses carros são servidores. Isto significa que eles fornecem serviços a outros computadores na Internet. Muitos desses servidores são servidores de e-mail, servidores Web, servidores FTP, servidores de serviços em nuvem.

Portas

Qualquer servidor disponibiliza seus serviços via Internet através de números portos, um para cada serviço disponível no servidor. Por exemplo, existe um computador servidor executando um servidor Web e um servidor FTP. O servidor web normalmente estará disponível na porta 80 e o servidor FTP estará disponível na porta 21. Os clientes se conectam ao serviço em um endereço IP específico e em uma porta específica.

Cada um dos serviços mais populares está disponível em um número de porta pré-conhecido, mas você pode atribuir seu próprio número de porta a qualquer serviço.

Se o servidor aceitar conexões em uma porta de mundo exterior, e se o firewall não proteger as portas, você poderá conectar-se a uma porta predeterminada de qualquer computador na Internet e usar o serviço. Observe que não há nada que o obrigue a, por exemplo, manter o servidor Web na porta 80. Se você instalou seu servidor e carregou o software do servidor Web nele, poderá colocar o servidor Web na porta 999, ou qualquer outra porta não utilizada. . Então, se, por exemplo, sua máquina for conhecida como xxx.yyy.com, eles poderão se conectar a ela a partir do URL http://xxx.yyy.com:999 -":999" indica claramente o número da porta através da qual seu servidor Web pode ser acessado. Se a porta não for especificada, o navegador simplesmente assume que o servidor Web está acessível usando a conhecida porta 80.

Protocolos

Uma vez que um cliente esteja conectado a um serviço em uma determinada porta, ele acessa o serviço usando uma conexão especial. protocolo. Protocoloé um conjunto de convenções de nível lógico que permite aos programas trocar dados. Para trabalhar em conjunto entre computadores na Internet, é utilizada a família de protocolos TCP/IP. O servidor web usa o protocolo HTTP.

Adicional: Segurança

Você pode ver nesta descrição que o Servidor Web é um trabalho bastante simples Programas. Ele pega o nome do arquivo enviado através do comando GET, recebe o arquivo e envia para o navegador. Mesmo se você levar em conta todo o código para lidar com portas, um programa simples de servidor Web consiste em no máximo 500 linhas de código. Servidores Web em grande escala são mais complexos, mas em sua essência também são muito simples.

A maioria dos servidores define algum nível segurança aos processos de serviço. A opção mais simples é solicitar login e senha para ter acesso ao servidor. Servidores mais avançados adicionam segurança adicional ao estabelecer uma conexão criptografada entre o servidor e o navegador, portanto informação confidencial(por exemplo, números de cartão de crédito) podem ser enviados pela Internet.

Isso é realmente tudo o que é necessário para um servidor Web que atenda padrões, páginas da web estáticas. Páginas estáticas são páginas que não mudam, a menos que o próprio webmaster as edite.

Além disso: páginas dinâmicas

O que aconteceu dinâmico paginas web? Por exemplo:

1. Qualquer livro de visitas permite que você insira uma mensagem em um formulário HTML e exibe entradas novas e antigas automaticamente.

2. Qualquer mecanismo de pesquisa permite inserir palavras-chave em um formulário de consulta HTML e, em seguida, cria dinamicamente uma página com base na pesquisa de informações usando essas palavras-chave.

Em todos esses casos, o servidor Web faz mais do que apenas “procurar um arquivo”. Processa informações e gera páginas dependendo das especificidades das solicitações. Em quase todos os casos, o servidor Web utiliza o chamado roteiros- código de programa escrito em PHP, Perl, Java e outras linguagens de programação para completar este processo.

As páginas do nosso site também são dinâmicas, criadas por Ajuda PHP usando bancos de dados MySQL.

servidor web (servidor web) é um servidor responsável por receber e processar solicitações (solicitações HTTP) de clientes para um site. Os clientes geralmente são vários navegadores da web. Em resposta, o servidor web emite respostas HTTP aos clientes, na maioria dos casos junto com uma página HTML, que pode conter todos os tipos de arquivos, imagens, fluxo de mídia ou quaisquer outros dados.

O servidor web também desempenha a função de executar scripts, como CGI, JSP, ASP e PHP, que são responsáveis ​​por organizar solicitações a serviços de rede, bancos de dados, acesso a arquivos, encaminhamento de e-mails e outras aplicações de comércio eletrônico.

O termo “servidor web” também se aplica a dispositivos técnicos e software que executam as funções de um servidor web. Pode ser um computador especialmente selecionado de um grupo de computadores pessoais ou uma estação de trabalho na qual o software de serviço está instalado e em execução.

O cliente do usuário, que é principalmente um navegador web, faz solicitações ao servidor web para obter recursos identificados por URLs. Os recursos são páginas HTML, conteúdo de mídia digital, fluxos de mídia, imagens diversas, arquivos de dados ou quaisquer outros dados exigidos pelo cliente. Em resposta, o servidor web envia ao cliente os dados solicitados. Essa troca ocorre usando o protocolo HTTP.

HTTP (Inglês: HyperText Transfer Protocol) é um protocolo de rede para a camada de aplicação de transferência de dados. O princípio básico do protocolo HTTP é a tecnologia cliente-servidor, que garante a interação entre a rede e o usuário.

No caso de uma pequena organização, um servidor web pode ser um sistema integral, que será composto por: Servidor HTTP - utilizado para solicitações a páginas web; Servidor FTP – utilizado para baixar arquivos via Internet; Servidores NNTP – fornecem acesso a grupos de notícias; Servidor SMTP – para e-mail.

História

O cientista britânico Tim Berners-Lee é considerado o inventor do primeiro servidor web. Trabalhando desde 1980 no Laboratório Europeu de Pesquisa Nuclear (Conseil Européen pour la Recherche Nucléaire, CERN) como consultor de software, iniciou seu trabalho de desenvolvimento. Em Genebra, para suas próprias necessidades, desenvolveu o programa Inquire, que usava associações aleatórias para armazenar dados e lançou o conceito para a base da World Wide Web.

Em 1989, Tim Berners-Lee, trabalhando na intranet do CERN, propôs a fundação de um projeto global de hipertexto, que consistia na publicação de documentos hipertextuais vinculados por hiperlinks. A implementação deste projeto, na sua opinião, facilitaria aos cientistas do CERN a combinação, pesquisa e troca de informações. Para implementar o projeto, Tim Berners-Lee, junto com seus assistentes, inventou os identificadores URI e URL, o protocolo HTTP e a linguagem HTML. Todas essas tecnologias são agora amplamente utilizadas na Internet moderna e não podem mais ser vividas sem elas.


Como resultado deste projeto, Berners-Lee desenvolveu o primeiro servidor web do mundo, chamado "httpd", bem como o primeiro navegador de hipertexto do mundo para o computador NeXT, chamado WorldWideWeb.

O primeiro navegador da web rodava na plataforma NeXTSTEP, um sistema operacional multitarefa orientado a objetos, e foi desenvolvido usando o Interface Builder. A interface do navegador era muito simples e quase todas as informações eram exibidas em formato de texto com apenas algumas imagens. Além do protocolo FTP padrão, Tim Berners-Lee usou o novo protocolo HTTP, que ele inventou. Entre 1991 e 1993, Berners-Lee refinou e publicou as propriedades técnicas de seus novos desenvolvimentos: URIs e URLs, o protocolo HTTP e a linguagem HTML. O navegador da web foi posteriormente renomeado como "Nexus" para evitar confusão com o sistema operacional no qual o navegador foi desenvolvido e seu nome.

O primeiro servidor web e o primeiro navegador web do mundo rodaram no computador pessoal NeXTSTEP; este computador está agora em exibição no museu CERN (Microcosmo).

Tim Berners-Lee hospedou o primeiro site do mundo em http://info.cern.ch; Este site está agora arquivado. O primeiro site apareceu na Internet em 6 de agosto de 1991. Neste site foi dado:

  • descrição da World Wide Web;
  • instruções instalação correta servidor web;
  • informações sobre como adquirir um navegador da web;
  • outras informações técnicas.

Este site também foi o primeiro diretório online do mundo. Berners-Lee postou uma lista de links para outros sites e a atualizou regularmente.

Em 12 de dezembro de 1991, o primeiro servidor web do mundo foi instalado no Stanford Linear Accelerator Center (SLAC), nos Estados Unidos.

Funções básicas e adicionais

Todas as funções básicas e adicionais do servidor web:

  • Receber solicitações de navegadores web através do padrão HTTP utilizando protocolos de rede TCP/IP;
  • Pesquisa e envio de arquivos com hipertexto ou quaisquer documentos para o navegador via HTTP;
  • Atendimento e processamento de solicitações, tais como: mailto, FTP, Telnet, etc.;
  • Lançamento de programas aplicativos em servidor web com posterior transferência e retorno dos parâmetros de processamento via padrão de interface CGI;
  • Operação e manutenção de mapas de imagens de navegação (Mapa de imagens);
  • Administração e gerenciamento operacional do servidor;
  • Autorização de usuários e sua autenticação;
  • Manter um registro de solicitações de usuários para diversos recursos;
  • Operação automatizada de páginas web;
  • Suporte para páginas geradas dinamicamente;
  • Suporte ao protocolo HTTPS para conexões seguras com clientes.

Descrição do servidor web

Os navegadores da Web se comunicam com servidores da Web usando o protocolo de transferência de hipertexto (HTTP). É um protocolo simples de solicitação e resposta para envio de informações usando o protocolo TCP/IP. O servidor web recebe a solicitação, detecta o arquivo, envia-o ao navegador e fecha a conexão. As informações gráficas presentes na página são processadas da mesma forma. Em seguida, é a vez do navegador exibir no monitor do usuário o documento HTML baixado da Internet.

Além de páginas HTML e gráficos, os servidores web podem armazenar qualquer arquivo, incluindo documentos de texto, documentos de processador de texto, arquivos de vídeo e informações de áudio. Hoje, se você não levar em conta os questionários que os usuários preenchem, a maior parte do tráfego da web é transmitida em uma direção - os navegadores leem arquivos do servidor web. Mas isso mudará com a adoção geral do método PUT descrito no rascunho do HTTP 1.1, que permite que arquivos sejam gravados no servidor Web. Hoje, o método PUT é usado principalmente por usuários que criam páginas web, mas no futuro também poderá ser útil para outros usuários fornecerem feedback aos centros de informação. As solicitações PUT são muito mais simples do que o upload de arquivos POST normal para um servidor web.

Diversas aplicações também realizam seu trabalho no servidor web, sendo as mais populares os motores de busca e as ferramentas de comunicação com bancos de dados. Os padrões usados ​​para desenvolver esses aplicativos incluem Common Gateway Interface (CGI), linguagens de script JavaScript e Programação Java e VisualBasic. Além do padrão CGI, algumas empresas de servidores web criaram interfaces de programação de aplicativos (APIs), como a API Netscape Server e a API Internet Server, que foram criadas pela Microsoft e pela Process Software AG. Essas interfaces permitem que os desenvolvedores acessem diretamente funções específicas do servidor web. Alguns servidores web fornecem middleware para conexão com bancos de dados, o que pode exigir conhecimento avançado de programação para funcionar.

As funções básicas de pesquisa ajudam os usuários a classificar as informações necessárias e os utilitários de banco de dados fornecem aos usuários do navegador da Web acesso a essas informações.

Visão geral do servidor web

Os critérios para a escolha de um servidor web podem incluir diferentes características: instalação, configuração, gerenciamento do servidor, administração, gerenciamento da informação hospedada no servidor, proteção desta informação, controle de acesso, funções de desenvolvimento de aplicações e desempenho.

A maioria dos servidores web são fáceis e rápidos de instalar.

A parte mais difícil do processo de instalação é configurar vários nomes de domínio em um dispositivo físico ou em outras palavras, a organização de servidores virtuais.

Os servidores web dispõem de ferramentas de gestão do módulo de informação que caracteriza a organização global do site, dispondo também de ferramentas de verificação da correcção dos links de hipertexto internos e externos. O pacote LiveWire da Netscape Communications, fornecido com o Novell Open Enterprise Server (OES) e opcionalmente disponível com o FastTrack Server, possui um utilitário de gerenciamento de host que lista todos os links de uma página selecionada. Este utilitário também fornece uma lista geral de todas as conexões incorretas detectadas. O WebView da O'Reilly & Associates tem a mesma funcionalidade e pode exibir uma árvore de arquivos detalhada com todos os links inválidos destacados em vermelho.

Existem também ferramentas básicas para gerenciar conteúdo. Os administradores da Web devem escolher onde armazenar os arquivos e como esses arquivos serão acessados ​​pelos usuários que acessam o servidor da Web. Isso requer mapeamento entre URLs lógicos e diretórios de arquivos físicos. Cada software executa esta operação de uma maneira única.

Com a crescente popularidade dos servidores web e a sua crescente utilização em intranets, a actividade comercial na Internet aumenta, pelo que aumenta a importância da protecção da informação. Na maioria das vezes, os sistemas de segurança de servidores web são exagerados ou insuficientes para as intranets atuais. Caso seja necessário restringir o acesso a determinadas informações dentro da empresa, pode-se escolher entre usar senhas não criptografadas que são transmitidas pelos canais de comunicação e usar Protocolo SSL(Inglês: Secure Sockets Layer) é um método complexo e lento usado para criptografar senhas e dados.

Para organizar o trabalho de usuários individuais e seus grupos pode ser usado aplicações internas servidor ou certas funções do sistema operacional. Para organizar o trabalho de usuários individuais e seus grupos, podem ser utilizadas aplicações internas do servidor ou determinadas funções do sistema operacional. O Microsoft IIS Batch Service fornece suporte para o sistema operacional de rede Windows NT subjacente.

Servidor Web NetWare da Novell, Inc. Totalmente integrado com serviços de diretório de endereços (NetWare Directory Services, NDS). É conveniente gerenciar usuários a partir de um centro comum, mas pode representar um risco à segurança. As senhas são distribuídas sem criptografia pelos canais de comunicação e, se forem interceptadas, não apenas o servidor web corre risco, mas também a segurança de todo o sistema operacional da rede.

O desenvolvimento de aplicativos é uma das principais funções de um servidor web. O ambiente de desenvolvimento de aplicações e as ferramentas de conectividade de banco de dados são muito importantes para ampliar as capacidades do servidor web, uma vez que o desenvolvimento de aplicações depende de vários detalhes idiossincráticos da interface de programação de aplicações (API), bem como das características das linguagens de programação ou do preferências individuais dos programadores.

Os servidores Web podem servir uma variedade de sistemas, desde uma intranet de pequena empresa até grandes centros de informações da Web usados ​​por milhões de pessoas.

Para pequenas intranets corporativas, o melhor pacote a ser usado é o Internet Information Server (IIS), criado e distribuído pela Microsoft. O IIS tem uma instalação bastante simples e configurações simples configurações. Este pacote de servidor web está bem integrado com controles de acesso, a ferramenta de monitoramento do sistema Performance Monitor e o Event Viewer. O servidor web IIS também fornece diversas ferramentas para transferência dinâmica de informações de bancos de dados. O IIS é muito rápido. Os componentes do IIS suportam protocolos como: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

Para facilitar a criação de centros de informações da web, a maioria dos servidores da web vem com utilitários e ferramentas para gerenciamento de conteúdo. Além dos editores HTML e dos conversores de formato de documento, as ferramentas mais úteis são os controles de URL, que garantem que todos os links de hipertexto do seu site estejam funcionando.

Qualquer computador pessoal conectado à Internet pode ser transformado em um servidor web se você instalar um software de servidor especial nele.

Os servidores web mais comuns são Apache (Apache Software Foundation), IIS (Microsoft) e servidor iPlanet (da Sun Microsystems e Netscape Communications Corporation). Agora, no mercado de software para servidores web, existe uma grande variedade de produtos, tanto comerciais quanto gratuitos.

Um dos servidores web mais comuns é o Apache da Apache Software Foundation. Estima-se que seja usado em 65% de todos os servidores web do mundo. Uma das principais vantagens do software Apache é que sua distribuição é gratuita. Os desenvolvedores corrigem regularmente os bugs encontrados e fornecem um bom suporte ao usuário. Este servidor web suporta um grande número de módulos, utilitários e complementos. Como o Apache foi desenvolvido desde o início como um software para administradores e usuários avançados, a desvantagem é que é difícil de configurar e manter para webmasters inexperientes.

O próximo em popularidade é o servidor web IIS da Microsoft. De acordo com a Netcraft, o servidor web IIS representa 12,46% do número total de servidores web. Este produto faz parte da família de software de servidor Windows NT. Suas principais vantagens são estabilidade, alta velocidade e capacidade de conectar módulos adicionais. A Microsoft se esforça para garantir que qualquer usuário possa usar seus produtos sem a ajuda de especialistas, caso precise resolver problemas padrão. Portanto, o IIS é muito fácil de instalar, configurar e manter. O servidor web suporta a tecnologia .NET, que recentemente ganhou popularidade entre desenvolvedores e usuários profissionais. Esses benefícios levam o servidor web IIS para o próximo nível e você pode esperar que seu uso aumente.

Outros servidores web famosos:

  • nginxé um servidor web gratuito e um servidor proxy de correio desenvolvido por Igor Sysoev. Servidor simples, rápido e confiável. Funciona em Linux e outros sistemas semelhantes ao Unix sistemas operacionais, bem como no Windows. Popular nos principais sites;
  • lighttpd- servidor web gratuito. Desenvolvido por Jan Kneschke. Servidor web rápido e seguro. Funciona em Linux e outros sistemas operacionais semelhantes a Unix, bem como em Windows;
  • Servidor Web do Google- um servidor web baseado em Apache e usado pelo Google para organizar sua infraestrutura web;
  • Resina- um servidor web gratuito e um servidor de aplicativos para Java. Desenvolvido por Caucho Technology Inc.;
  • Cherokee- um servidor web gratuito que é controlado apenas através da interface web. Escrito na linguagem de programação C;
  • Enraizamento- um servidor web escrito na linguagem de programação Java. Funciona em Linux e Windows;
  • THTTPD- um servidor web simples, pequeno, rápido e seguro. Desenvolvido pela ACME Labs Software.

Clientes de servidor web

Normalmente, o cliente é um navegador da web. Mas vários outros dispositivos e programas também podem acessar o servidor web:

  • Um navegador da Web instalado em um computador pessoal desktop;
  • Um navegador web instalado em um PDA ou outro dispositivo portátil;
  • Telemóveis e smartphones com os quais o utilizador obtém acesso aos recursos do servidor web através do protocolo WAP;
  • Vários programas que podem acessar o servidor web de forma independente para atualizar ou obter outras informações. Um exemplo são vários antivírus que entram em contato periodicamente com o servidor web para atualizar o banco de dados;
  • Vários dispositivos digitais, bem como alguns eletrodomésticos.

Este artigo será útil para aquelas pessoas que já possuem seu próprio site ou que planejam abrir um. O artigo será especialmente interessante para webmasters ambiciosos que sentem que o melhor momento de seu projeto está chegando e desejam se preparar para o fluxo de visitantes da página.

Mesmo aqueles que apenas sonham com milhares de usuários em seu site provavelmente já se perguntaram: “Quantos usuários meu site suportará se fizerem login ao mesmo tempo?” Lembro-me imediatamente da conhecida expressão “Habraefeito” - o fenômeno de uma falha de site que não estava pronto para inúmeras transições depois que um link apareceu na Internet.

Suponhamos que já existe um site (ou haverá em breve): onde devemos colocá-lo? Deveria ser uma hospedagem clássica ou um servidor VPS? Se for vps, qual e qual a melhor forma de configurá-lo? Ou talvez não haja diferença alguma e seja mais fácil escolher o que é mais barato? Neste artigo veremos diversas opções e veremos na prática qual delas é mais adequada para o nosso site.

Vamos experimentar: definir diferentes modos de operação do servidor e medir o desempenho. Simularemos a carga no site utilizando o serviço Loaddy.com. Lá você pode definir o número de usuários, o tipo crescente de carga e o gráfico mostrará como o servidor reage a eles. Acredita-se que um usuário gere aproximadamente uma solicitação ao site em 10 segundos. Como site de teste, vamos fazer uma demonstração da loja online no cms moguta. Será preenchido com “produtos” de teste que são exibidos na página principal de acordo com diversos critérios (ou seja, ao criar a página, o trabalho é feito com o banco de dados, etc.). De uma forma ou de outra, isso permitirá comparar os modos entre si.

Como site de teste, criaremos um servidor VPS no Ubuntu OS. Sua configuração será . Assumiremos que estes são os servidores nível de entrada criado na maioria dos casos para novos projetos. A versão de teste da loja online estará disponível no endereço IP http://130.193.44.219/

A hospedagem clássica também será útil, para a qual também carregaremos a mesma loja online para realizar testes. Você mesmo pode seguir nosso caminho e realizar os mesmos testes em seu projeto!

Como na maioria dos casos é oferecido um painel de controle junto com o vps, faremos as principais alterações nas configurações dele. No servidor vps temos 3 modos de operação à nossa disposição:

  • Apache;
  • Apache em modo CGI;
  • Nginx + php-fpm (sem Apache).
Mas primeiro vamos testar na hospedagem:

Hospedagem barata clássica

Erros aparecem quando o número de visitantes ultrapassa 50 pessoas. A hospedagem para de servir conteúdo, e se formos ao painel de controle da hospedagem, podemos ver algo como o seguinte:

Seu site foi restrito nas últimas 24 horas. Os recursos da CPU são limitados para o seu site. Você atingiu os limites de processos de entrada (número de scripts PHP e CGI executados simultaneamente, trabalhos agendados e sessões de console) 126 vezes.
E, claro, hospedagem é hospedagem, especialmente barata. Você pode, claro, encontrar um tarifário que lhe proporcione mais oportunidades, mas tudo isso precisa ser levado em consideração, e de alguma forma saber os dados exatos das restrições de cada provedor de hospedagem.

VPS: Apache

O próximo da fila é nosso VPS de teste com modo Apache, que, aliás, é oferecido por padrão ao instalar o painel de controle do ISP.

Os problemas começam quando o número de usuários ultrapassa 90. Se logarmos em nosso servidor via ssh e neste momento olharmos a lista de processos usando o comando top, classificados usando Shift+M (pela quantidade de memória consumida), veremos algo assim:

Vemos que o processo apache2 cresceu em muitos filhos e eles consumiram toda a RAM do nosso servidor vps.

Aqui precisamos fazer uma pequena observação. O fato é que para o servidor Apache, teoricamente, existe um modo que permite, ao invés de um grande número de processos filhos para cada conexão, criar vários chamados multithreads, cada um dos quais atenderia diversas conexões. Este modo é chamado trabalhador, ao contrário do padrão pré-garfo. Mas instalar não é fácil, é impossível fazer isso em painéis como ISP, e se você ficar confuso e tentar fazer via ssh, vai descobrir que para isso não basta desligar o prefork e ligar o trabalhador , você também precisa de uma versão thread-safe do php. E se módulos como Zend ou IonCube forem usados, eles também deverão ser thread-safe. E, em geral, o site oficial do PHP não recomenda a instalação deste modo.

VPS: CGI

Vamos ver o que acontece ao usar o modo CGI. Para fazer isso, você precisa permitir o uso do PHP em modo CGI no painel de controle do ISP, isso é feito na seção “ Contas– usuários – configurações do usuário.”

Acabou sendo uma imagem sombria. O servidor se recusa a servir conteúdo mesmo com mais de 55 visitantes, a RAM é toda consumida pelos processos “php”. Em seguida vem uma tentativa de restaurar a funcionalidade, mas ainda termina em quase 100% de falhas.

VPS: Nginx + PHP-FPM

Chegou a hora de um modo em que o servidor Apache não é usado, o Nginx funciona e o php é processado pelo módulo php-fpm. Se você estiver usando um painel de controle do ISP, deverá ativar esse modo para o usuário. Isso também é feito na seção “Contas - Usuários - Configurações do usuário”. Este modo também deve estar disponível na seção “Configurações – Recursos – Servidor Web (www)”.

Exatamente o que é necessário! 100% de disponibilidade, enquanto a velocidade de carregamento e o tempo de resposta do servidor estão em níveis aceitáveis, embora aumentem com o aumento da carga. No entanto, o servidor aguenta!

Vejamos a tabela de processos no momento de carga máxima do servidor:

Vemos que ainda temos estoque a um preço acessível memória de acesso aleatório. E os processos filhos do php-fpm7.0 não crescem em grandes quantidades, mas são limitados a 5 cópias, cada uma servindo vários threads.

Bem, parece que o “regime vencedor” foi determinado. Vamos descobrir quantos visitantes simultâneos nosso servidor pode atender neste modo. Mas antes disso faremos um pequeno “tuning”. Em primeiro lugar, como o apache não é usado quando o servidor está rodando desta forma, ele pode ser completamente desabilitado. Faremos isso no painel de controle do ISP na seção “Sistema - Serviços”. Em segundo lugar, vamos mudar um pouco o princípio de lançamento de processos php-fpm. Por padrão, é dinâmico. Isso significa que os processos filhos ficarão suspensos na memória mesmo quando não forem necessários. Ao mesmo tempo, a memória não é liberada e com o tempo esses processos podem ficar maiores do que gostaríamos. Portanto, propõe-se instalar o modo “ondemand” - sob demanda. E defina o número de processos filhos e o tempo limite para eles.

Para fazer isso, você precisará fazer login no servidor via ssh e escrever essas configurações na configuração arquivo php. É conveniente fazer isso em um arquivo para o usuário para quem o domínio foi criado no ISP.

Geralmente está localizado em /etc/php/7.0/fpm/pool.d

Então: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Vemos as seguintes configurações padrão lá:

PM = dinâmico pm.start_servers = 13h.min_spare_servers = 13h.max_children = 17h.max_spare_servers = 5
Para fazer o modo sob demanda funcionar, você precisa substituir isso por:
pm = sob demanda pm.max_children = 17h.process_idle_timeout = 10s
E reinicie o php-fpm com o comando

Reinicialização do serviço Sudo php7.0-fpm
Depois disso, os processos php-fpm7.0 serão criados sob demanda (se houver carga), o número máximo deles será = 5, e após 10 segundos de tempo ocioso o processo será eliminado, liberando RAM.

Por precaução, vamos fazer nosso teste novamente para ter certeza de que toda essa atividade amadora não afetou negativamente o desempenho do site:

Agora vamos executar o Loaddy com muitos visitantes para ver quantas conexões nosso servidor pode suportar:

A boa notícia é que todas as solicitações foram processadas, ainda que com grande atraso, com grande quantidade delas por segundo. O tempo de resposta do servidor está se aproximando de 10 segundos com um número de solicitações de mais de 190. Mas vamos lembrar o gráfico do modo apache, onde recebemos 4 segundos de resposta do servidor já com mais de 80 usuários, enquanto no modo php-fpm atrasos semelhantes são observados com 130 solicitações, que destacamos especificamente com o cursor no gráfico acima.
Mas este é o mesmo VPS.

Tabela dos principais processos ao final do teste (com 200 usuários):

Observe que após a conclusão do teste, a memória usada pelo pfp-fpm foi liberada:

Isso significa que nosso servidor está pronto para novas cargas.

É necessário lembrar que o site opera em modo nginx+php-fpm, isso significa que apache2 não é utilizado no trabalho e, consequentemente, .htaccess não é utilizado. Isso pode parecer inconveniente, mas é a opção mais rápida disponível, e os mecanismos de pesquisa classificam melhor os sites mais rápidos.

Conclusão

Concluindo, mais um pequeno ponto: se você configurou tudo o que queria no servidor e decidiu desabilitar o painel de controle do ISP, ou sua licença expirou, lembre-se que o processo “principal” dele permanecerá pendente. seu servidor. Com o passar dos meses, ele pode ficar maior, por isso é melhor “matá-lo” e removê-lo da execução automática e do crona.

Se você quiser testar o site usando Loaddy ou outros métodos, ele está disponível em

A indústria de hospedagem na web requer pelo menos algum conhecimento básico para operar. Existem vários termos de hospedagem na web que todo webmaster deve conhecer. Um dos mais básicos é: servidor web Na realidade, a hospedagem web é composta por servidores web que disponibilizam espaço para o seu site. O servidor HP Micro AMD N40L é um servidor versátil que pode fornecer uma plataforma para organizar e proteger informações comerciais, permitir comunicação eficaz com o cliente e aproveitar ao máximo seus equipamentos e recursos de escritório existentes. O HP MicroServer é um servidor inicial econômico para empresas com menos de 10 clientes e pode levar sua empresa a novos níveis de produtividade e eficiência. Para saber mais sobre o servidor HP Micro AMD N40L, siga este link http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

servidor web pode significar duas coisas - computador, que hospeda o site e programa, que roda em tal computador. Portanto, o termo relacionado ao servidor web hardware e software . Veremos esses dois tipos, um de cada vez.

Hardware de servidor web

O site é uma coleção paginas web que são arquivos digitais normalmente escritos usando a linguagem de marcação de hipertexto HTML. O site estará disponível para todo o mundo o tempo todo, para isso deverá ser armazenado em uma hospedagem ou em um computador conectado à Internet 24 horas por dia, 7 dias por semana, 365 dias por ano. Esse computador é chamado Servidor web (observe que as primeiras letras são maiúsculas).

Você pode potencialmente hospedar um site em seu computador doméstico, mas isso requer muito trabalho e monitoramento constante.É mais fácil comprar hospedagem de uma empresa porque existem milhares delas que oferecem esse serviço a preços razoáveis. Resumidamente sobre uma das melhores empresas no final do artigo, você não só pode obter hospedagem na web, mas também um nome de domínio e um site e é muito barato!

Existem vários requisitos para um servidor de computador - ele deve ser rápido o suficiente, ter uma grande quantidade de RAM e Disco rígido com grande volume, mas o mais importante é ter um endereço permanente na Internet, também conhecido como endereço IP - Internet Protocol. Se o endereço IP do site não for encontrado e funcionar desligada- o navegador exibirá um erro não consigo encontrar o site.

Programas e software de servidor web

Programas servidor web Este é um software que executa um site em um computador servidor de hospedagem. Seu principal objetivo: emitir paginas web; isso significa que ele escuta solicitações de navegadores da web (também conhecidos como clientes ) e responde enviando de volta os dados necessários. Essa interação cliente-servidor é uma parte distintiva de como um servidor web opera..

Existem muitos programas de servidor web. O mais famoso e popular deles é Apache, desenvolvido pela Apache Foundation. O Apache não é apenas gratuito, mas também está disponível para vários sistemas operacionais, incluindo Windows, Macintosh e Linux/Unix.

Embora os termos servidor Web e servidor de aplicativos sejam frequentemente usados ​​de forma intercambiável para se referir à mesma coisa, ou seja, para garantir o bom funcionamento de um site, eles não são a mesma coisa. Em vez disso, eles trabalham juntos para entregar conteúdo de sites aos usuários finais. Um servidor web pode se referir a um programa que aceita e atende solicitações recebidas de clientes de recursos web em todo o mundo. Ele atende essas solicitações junto com conteúdo opcional, que geralmente são páginas HTML, arquivos de imagem, arquivos de vídeo, etc. O servidor de aplicativos fornece conteúdo dinâmico para usuários finais usando diferentes protocolos, incluindo HTTP. Este artigo explica a diferença entre os dois.

O que é um servidor web?

Um servidor web nada mais é do que um programa de software projetado para lidar com solicitações da web. Ele aceita solicitações recebidas na forma de conteúdo estático, que são basicamente componentes de sites, incluindo páginas HTML, gráficos e arquivos de vídeo, etc. Em seguida, ele responde a solicitações via HTTP junto com conteúdo de dados adicional. A principal função de um servidor web é fornecer conteúdo à World Wide Web para torná-lo acessível aos usuários finais. Pode se referir a um sistema composto de hardware ou software, ou onde o conteúdo da web é armazenado. Falando em palavras simples, um servidor web é um computador que entrega páginas web conforme elas são solicitadas. Apache é o servidor web de código aberto mais popular e amplamente utilizado, desenvolvido e mantido pela Apache Software Foundation.

O que é um servidor de aplicativos?

Servidor de aplicativos é um termo frequentemente confundido com servidor web, exceto que pode usar estratégias diferentes para lidar com solicitações iniciadas pelo servidor web. Isso facilita hospedar e fornecer aplicativos de negócios de alta qualidade. Muitas vezes é visto como um aplicativo de três camadas que consiste em GUI usuário (GUI), servidor de aplicação e servidor de banco de dados e transações. Ele serve lógica de negócios para programas aplicativos por meio de vários protocolos, incluindo, entre outros, HTTP. É uma estrutura de software que fornece todos os recursos necessários para criar e executar aplicativos empresariais e baseados na Web. Em vez de servir conteúdo estático, é mais adequado para servir conteúdo dinâmico e transferir aplicativos de um dispositivo para outro.

Diferença entre servidor web e servidor de aplicativos

Noções básicas de servidor Web e de aplicativos

Um servidor web refere-se ao hardware ou software, ou ambos, que fornece conteúdo ou serviços aos usuários finais pela World Wide Web. É mais como um programa que responde às solicitações de rede recebidas por recursos da web usando o protocolo HTTP. Também é conhecido como servidor de Internet. Por outro lado, um servidor de aplicativos é uma estrutura de software baseada em componentes que facilita o desenvolvimento e a execução de aplicativos da web. Essencialmente, é um programa de servidor de camada intermediária projetado para fornecer lógica de negócios para programas aplicativos.

O servidor web é limitado apenas ao conteúdo HTTP, o que significa que usa o protocolo HTT para armazenar, processar e entregar conteúdo aos clientes. É um computador poderoso que torna os sites acessíveis pela Internet, e a comunicação entre o cliente e o servidor é feita através de HTTP. O servidor de aplicativos não está limitado a enviar conteúdo HTML estático; Na verdade, ele comunica a lógica de negócios aos aplicativos clientes usando vários protocolos.

Função de servidor web e servidor de aplicativos

A função de um servidor web é aceitar e responder às solicitações de usuários que são redirecionados pelos clientes HTTP de seus computadores, que podem ser de um navegador web ou de aplicativo móvel. O principal objetivo de um servidor web é disponibilizar conteúdo estático para os usuários visualizarem em navegadores web. A função de um servidor de aplicativos é hospedar e publicar aplicativos e processos lógicos de negócios usando vários protocolos diferentes. Funciona em conjunto com um servidor web.

Multithreading

O servidor web responde a solicitações provenientes de múltiplas conexões simultaneamente, mas não pode processar múltiplas solicitações simultâneas em paralelo. A ideia de usar threads para melhorar a velocidade de processamento simplesmente não funciona com servidores web. Por outro lado, os servidores de aplicativos suportam multithreading, bem como vários outros recursos, como agregação de isolamento, pooling, balanceamento de carga, clustering, etc.

Capacidade do servidor web e do servidor de aplicativos

O servidor Web é baseado em programas relacionados à Internet e intranet para atender e-mails e solicitações de download. Arquivos FTP e para criar e publicar páginas da web para clientes usando o protocolo HTTP. Ele pode ser usado sozinho ou como componente de um servidor de aplicativos. Por outro lado, os servidores de aplicativos podem fazer tudo o que os servidores de aplicativos podem fazer e muito mais. Eles são mais capazes de criar conteúdo dinâmico para atender aplicações web e empresariais.

Servidor Web vs Servidor de Aplicativos: Tabela de Comparação

Resumo de servidor Web vs. Servidor de aplicativos

Os servidores Web desempenham um papel fundamental no funcionamento da Internet, sem o qual a Internet deixa de existir. Em termos simples, os servidores web atuam como um gateway entre o usuário e a World Wide Web. É um sistema projetado para entregar conteúdo estático aos usuários finais pela Internet. Limita-se a solicitar atendimento a clientes apenas via protocolo HTTP. Em contraste, os servidores de aplicativos consomem mais recursos, fornecendo serviços de middleware para aplicativos clientes por meio de vários protocolos, incluindo HTTP. É uma plataforma projetada para instalação, operação e hospedagem de aplicações e serviços para usuários finais. Embora ambos sejam necessários para o bom funcionamento do site, eles são muito diferentes um do outro.


Principal