EC

Edielly Carvalho01/01/2024 21:20
Compartilhe

Servidor web - NGINX - BÁSICO

    Este tutorial destaca pré-requisitos para sua utilização, requisitos de sistema, pacotes necessários, daemons e a configuração do firewall no linux. Além disso, aborda o caminho do arquivo de configuração, diretrizes para instalação e configuração do servidor Nginx, bem como os comandos para testar a sintaxe e operar o servidor. Finaliza com dicas práticas para o acesso pelo cliente e comandos úteis

    Um servidor web é um computador responsável pelo armazenamento, processamento e entrega dos arquivos dos sites para os navegadores. Através deste processo, os servidores web carregam e entregam a página solicitada para o navegador do usuário — como o Google Chrome, por exemplo.

    O NGINX é um servidor web de código aberto, além de ser uma solução de entrega de aplicativos e usado como proxy. Foi desenvolvido por Igor Sysoev, em outubro de 2004 para solucionar o problema C10k.

     

    1 - PRÉ-REQUISITOS BÁSICOS PARA USO DO NGINX

    Pré-Requisitos:

    • Pode variar dependendo do uso.
    • 512 MB de RAM 
    • 50 MB de espaço livre em disco.
    • CPU- 1Ghz

    Sistemas operacionais compatíveis: 

    • O Nginx está disponível para uma variedade de sistemas operacionais, incluindo Windows, macOS e Linux.

    Esses aqui são necessários mas provavelmente já estão instalados:

    fonts-liberation2 fonts-opensymbol gir1.2-goa-1.0;

     gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gudev-1.0;

     gir1.2-snapd-1 gir1.2-udisks-2.0 grilo-plugins-0.3-base gstreamer1.0-gtk3;

     libboost-date-time1.65.1 libboost-filesystem1.65.1 libboost-iostreams1.65.1;

     libboost-locale1.65.1 libcdr-0.1-1 libclucene-contribs1v5 libclucene-core1v5;

      libcmis-0.5-5v5 libcolamd2 libdazzle-1.0-0 libe-book-0.1-1;

     libedataserverui-1.2-2 libeot0 libepubgen-0.1-1 libetonyek-0.1-1;

     libevent-2.1-6 libexiv2-14 libfreerdp-client2-2 libfreerdp2-2 libgc1c2;

     libgee-0.8-2 libgexiv2-2 libgom-1.0-0 libgpgmepp6 libgpod-common libgpod4

     liblangtag-common liblangtag1 liblirc-client0 liblua5.3-0 libmediaart-2.0-0

     libmspub-0.1-1 libodfgen-0.1-1 libqqwing2v5 libraw16 librevenge-0.0-0

     libsgutils2-2 libssh-4 libsuitesparseconfig5 libvncclient1 libwinpr2-2

     libxapian30 libxmlsec1 libxmlsec1-nss lp-solve media-player-info

     python3-mako python3-markupsafe syslinux syslinux-common    syslinux-legacy 

     usb-creator-common

    Daemons:

    O NGINX possui dois principais processos, master process e worker process.

    Visualizando os processos:

    $ ps aux | grep nginx 
    

    Normalmente é necessário configurar seu firewall para permitir o tráfego de rede, isso tanto no servidor quanto no clientes.Você precisará abrir as portas usadas pelo NGINX, usando o seguinte comando:

    $sudo ufw enable
    $sudo ufw allow http
    $sudo ufw reload
    

    2 - ARQUIVO DE CONFIGURAÇÃO DO NGINX 

    Diretório de Configuração: está localizado em /etc/nginx/. O arquivo principal de configuração é chamado nginx.conf. O arquivo de configuração pode ser acessado por cd /etc/nginx/nginx.conf.

     É possível usar  etc/nginx/sites-available/ para criar arquivos de configuração separados para cada site que deseja hospedar. 

    Para habilitar um site, no caso é necessário ligar os arquivos criados no etc/nginx/sites-available/ ao diretório /etc/nginx/sites-enabled/. 

    3 - PASSO A PASSO DE FUNCIONAMENTO DO NGINX  (Neste tutorial foi usado as versões 20.04 e 16.04 do linux Ubuntu)

     3.1 INSTALAÇÃO DO SERVIÇO:

    •    Para instalar o Nginx utilize o seguinte comando:
      	  	  $sudo apt install nginx
    

    4. CONFIGURAÇÃO DO SERVIÇO

     4.1 Desativar o arquivo de configuração padrão do NGINX

      $sudo unlink /etc/nginx/sites-enabled/default
    

     4.2 - Crie um arquivo de configuração para o seu site usando um editor de texto. Por exemplo:

    $sudo nano /etc/nginx/sites-available/exemplo.conf
    

     4.2.1 - Copie e cole o seguinte código dentro do editor do arquivo:

    server {

      listen 80;

      server_name exemplo.com;

      root /var/www/exemplo/html;

      index index.html;

      location / {

        try_files $uri $uri/ /index.html;

      }

    }

    image

    4.3 Criar o link simbólico para ativar o site:

       $ln -s /etc/nginx/sites-available/exemplo.conf /etc/nginx/sites-enabled/
    

    4.4 Verificar a sintaxe dos arquivos de configuração:

      $nginx -t
    

    4.5. EDITE O ARQUIVO /etc/hosts E COLOQUE O IP DO SEU SERVIDOR ou configure o dns :

    image

    5. CONFIGURAÇÃO DO SITE ( index.html e outros subdiretórios)

    Após seguir estes passos, o Nginx estará configurado para servir arquivos HTML e subdiretórios. Basta organizar os arquivos HTML nos subdiretórios dentro do diretório raiz. Certifique-se de substituir "exemplo.com" pelo nome do seu domínio e "/var/www/exemplo/html" pelo caminho dos arquivos do site. Use sudo chmod 755 /var/www/ para ajustar as permissões, se necessário.

    Por exemplo, se você deseja servir arquivos HTML de subdiretórios dentro do diretório /var/www/exemplo/html, você pode organizar seus arquivos desta forma:

    /var/www/exemplo/html/

    ├── index.html

    ├── subdiretorio1/

    │  └── arquivo1.html

    ├── subdiretorio2/

    │  └── arquivo2.html

    Nesse caso, o Nginx servirá automaticamente os arquivos arquivo1.html e arquivo2.html quando acessados através das URLs apropriadas, como:

    http://exemplo.com/subdiretorio1/arquivo1.html

    http://exemplo.com/subdiretorio2/arquivo2.html

    6 - INICIAR/REINICIAR SERVIÇO APÓS CONFIGURAÇÕES:

    Comandos para Iniciar Serviço

    $ sudo systemctl start nginx 
    $sudo service nginx start
    $sudo /etc/init.d/nginx start
    

    Comandos para Reiniciar:

    $sudo systemctl restart nginx
    $sudo /etc/init.d/nginx restart
    $sudo service nginx restart
    

    7 - VERIFICAÇÃO DO FUNCIONAMENTO

    Reinicie o serviço e após para verificar o funcionamento, basta abrir um navegador e acessar o seu site usando o nome de domínio configurado no arquivo de hosts, ou dns ou diretamente pelo ip do servidor (passo 4.5).

    image

    8 - PRÁTICA DE ACESSO PELO CLIENTE

    Basta abrir o navegador, digitar o ip do servidor ou o nome de acordo com o DNS, ou o configurado no arquivo /etc/hosts do computador cliente.

    image

    9. COMANDOS ÚTEIS NGINX 

    Existem 3 comandos para recarregar o serviço do Nginx, conforme observado a seguir: 

    $systemctl reload nginx
    $sudo nginx -s reload
    $sudo service nginx reload
    

    Existem 2 comandos para verificar o status do Nginx, conforme observado a seguir:

    $systemctl status nginx
    $sudo service status nginx
    

    Comando para mostrar ajuda dos comandos do Nginx:

    $systemctl -h nginx
    

    Comando para busca de erros de sintaxe:

    $sudo nginx -t
    

    Existem 3 comandos para parar o serviço, conforme observado a seguir: 

    $sudo service nginx stop
    $sudo systemctl stop nginx
    $sudo /etc/init.d/nginx stop
    

    10 - CONCLUSÃO

    O Nginx oferece um servidor web eficiente e versátil. Sua configuração flexível, combinada com comandos simples para instalação, inicialização e verificação de erros, torna-o uma escolha robusta para hospedagem web, permitindo ajustes refinados e manutenção ágil de servidores.

    EXTRA (Maneira simplificada para testes)----

     1 . PASSO A PASSO DE FUNCIONAMENTO DO NGINX  

     1.1 Instalação do Nginx:

    $ sudo apt update
    $ sudo apt install nginx 
    

    2. Entre no diretório /var/www/html: (o arquivo index do nginx fica nesse diretório).

    $ cd /var/www/html
    

    3. procure pelo arquivo index.nginx-debian.html e logo em seguida faça uma cópia, para fim de segurança.

    $ sudo cp index.nginx-debian.html index.nginx-debian.html.origin  
    

    4. Depois edite o arquivo index.nginx-debian.html como desejado;

    $ sudo nano index.nginx-debian.html
    

    5. Reiniciar o Nginx:

    Após editar o arquivo, é uma boa prática reiniciar o Nginx para aplicar as alterações.

    $sudo systemctl restart nginx
    $sudo /etc/init.d/nginx restart
    $sudo service nginx restart
    

    6. Teste acessando pelo IP do Servidor

    Abra um navegador web e insira o endereço IP do seu servidor na barra de endereços. Se estiver acessando o servidor na mesma rede, pode ser algo como http://seu_endereco_ip. Você deve ver a página modificada conforme as edições feitas no passo 4.

    11 - REFERÊNCIAS

    https://ubuntu.com/tutorials/install-and-configure-nginx#2-installing-nginx 

    https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-20-04-pt#passo-5-configurando-blocos-do-servidor-recomendado 

    https://www.linode.com/docs/guides/how-to-install-and-use-nginx-on-ubuntu-20-04/

    https://youtu.be/WEIo9f4QbYM

    https://www.youtube.com/watch?app=desktop&v=HYNq-HyntZQ

    https://serverspace.io/support/help/nginx-virtual-hosts-on-ubuntu-20-04/amp/

    https://www.seguro.targethost.com.br/knowledgebase/137/Como-criar-Virtual-Hosts-com-Nginx.html

    https://king.host/wiki/artigo/como-editar-o-arquivo-hosts-no-windows/#:~:text=Ele%20est%C3%A1%20no%20caminho%3A%20C,estiver%20procurando%20o%20arquivo%20hosts.

    https://www.tecmint.com/useful-nginx-command-examples/

    https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/

    https://access.redhat.com/documentation/pt-br/red_hat_enterprise_linux/8/html/deploying_different_types_of_servers/configuring-nginx-as-a-web-server-that-provides-different-content-for-different-domains_setting-up-and-configuring-nginx

    https://kinsta.com/pt/base-de-conhecimento/como-instalar-o-nginx/

    nginx.org/en/docs

    https://phoenixnap.com/kb/nginx-start-stop-restart

    https://www.nginx.com/resources/glossary/nginx/

    https://www.hostinger.com.br/tutoriais/o-que-e-nginx#:~:text=NGINX%2C%20pronunciado%20%E2%80%9Cengine%2Dex,lan%C3%A7ado%20em%20Outubro%20de%202004

    https://youtu.be/YXLI5Rbu_Ek

    https://docs.nginx.com/nginx/admin-guide/basic-functionality/runtime-control/#:~:text=NGINX%20has%20one%20master%20process,as%20maintain%20the%20worker%20processes.

    Compartilhe
    Comentários (0)