Observação:

Use o Oracle Cloud Infrastructure para Publicar um Servidor Web Acessível pela Internet com IPv6

Introdução

Neste tutorial, explicaremos como podemos criar um servidor Web (instância OCI) na Oracle Cloud Infrastructure (OCI) e tornaremos esse servidor Web acessível pela internet. Não só tornaremos esse servidor Web acessível a partir de um endereço IPv4 público, mas também o tornaremos acessível a partir do endereço IPv6 público com os registros DNS (FQDN) totalmente configurados.

image

Observação: os domínios que usamos neste tutorial foram criados e configurados apenas para fins de teste.

image

Objetivos

Tarefa 1: Criar uma Nova VCN com IPv6 Ativado

Agora criamos uma nova VCN com novos espaços de rede IPv4 e IPv6 que podemos usar para criar sub-redes IPv4 e IPv6.

Tarefa 2: Criar uma Nova Sub-rede com IPv6 Ativado

Agora a sub-rede está pronta para ser usada para endereços IPv4 e IPv6.

Tarefa 3: Criar uma Nova Instância com IPv6 Ativado

image

A próxima tarefa lógica será acessar a instância usando SSH para que possamos começar a instalar e configurar o servidor Web. Quando tentamos estabelecer conexão com o servidor Web usando o endereço IPv4 público e a chave privada, não podemos estabelecer conexão porque a VCN criada na Tarefa 1 não tem gateway de internet e agora precisamos criar esse gateway de internet primeiro na VCN e também configurar o roteamento.

image

Tarefa 4: Criar um Novo Gateway de Internet e Configurar o Roteamento

Para permitir o acesso a uma nova instância (servidor de internet) pela internet, inicialmente usando SSH e, eventualmente, fazendo a transição para HTTP, devemos estabelecer um gateway de internet.

Tarefa 5: Abrir HTTP e HTTPS na Lista de Segurança Padrão

Quando uma nova VCN é criada, uma lista de segurança padrão é aplicada às sub-redes dentro dessa VCN. Por padrão, ICMP e SSH são entradas permitidas (entrada). Precisamos adicionar HTTP e HTTPS a essa lista para permitir o tráfego de entrada para o servidor Web.

As regras de segurança estão em vigor e o tráfego IPv4 e IPv6 é permitido nas sub-redes da VCN. Instalaremos o aplicativo do servidor Web na instância.

Tarefa 6: Instalar um Servidor Web na Instância

Antes de instalarmos o aplicativo do servidor Web, valide rapidamente se as portas do firewall estão configuradas corretamente. Use o site IPV6 Online Port Scanner a seguir. Este site tem um scanner de porta IPv6, mas você também pode digitar endereços IPv4.

Tarefa 7: Configurar registros de DNS

Observação: os domínios que usamos neste tutorial foram criados e configurados apenas para fins de teste.

Agora, o site ou servidor web é acessível a partir da internet. Vamos um passo adiante configurando um FQDN que pode ser lembrado mais facilmente do que um endereço IPv4 ou um endereço IPv6. Para este tutorial, usamos o seguinte subdomínio como exemplo: oci.iwanhoogendoorn.nl para o novo servidor Web.

Tarefa 8: Criar um Site Personalizado com NGINX e PHP

Vamos criar um site PHP personalizado ou script que fornece um pouco mais de informações sobre a rede e endereços IP com NGINX.

Para integrar o NGINX ao PHP, siga as etapas:

  1. Edite o arquivo de configuração do PHP-FPM para integrar o NGINX.

    Edite o arquivo /etc/php-fpm.d/www.conf.

    sudo nano /etc/php-fpm.d/www.conf
    
    • Conteúdo do arquivo /etc/php-fpm.d/www.conf antes das alterações.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user =** apache
      ; RPM: Keep a group allowed to write in log dir.
      **group =** apache
      
    • Conteúdo do arquivo /etc/php-fpm.d/www.conf após as alterações.

      ; Unix user/group of processes
      ; Note: The user is mandatory. If the group is not set, the default user's group
      ;	will be used.
      ; RPM: apache user chosen to provide access to the same directories as httpd
      **user = nginx**
      ; RPM: Keep a group allowed to write in log dir.
      **group = nginx**
      
  2. Edite o arquivo de configuração do NGINX para integrar o PHP-FPM.

    • Edite o arquivo /etc/nginx/conf.d/default.conf.

      [opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
      
    • Adicione a configuração a seguir.

      location / {
      **# where is the NGINX root www folder?**
          root   /usr/share/nginx/html;
      # what are the default index files to look for in the directory?
          index **index.php** index.html index.htm;
      }
      
      # tell NGINX what to do when it sees PHP-FPM giving a 404 HTTP status in the response
      **location = /404.php {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # not return error responses with relevant status codes
        fastcgi_intercept_errors off;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
      # tell NGINX what to do when it sees PHP-FPM a .php file
      **location ~ \.php$ {
      # where is the NGINX root www folder?
        root   /usr/share/nginx/html;
      # define custom error pages
        error_page 404 /404.php;
      # return error responses with relevant status codes
        fastcgi_intercept_errors on;
      # where is PHP-FPM listening? the socket
        fastcgi_pass unix:/var/run/php-fpm/www.sock;
      # everytime we're in this location, tell PHP-FPM the complete script filename to be executed
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      # and don't forget to tell PHP-FPM stuff like SERVER_NAME:
        include fastcgi_params;
      }**
      
  3. Edite o arquivo de configuração php.ini.

    • Edite o arquivo /etc/php.ini.

      [opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
      
    • Certifique-se de que a linha a seguir esteja presente, alterada ou não comentada.

      cgi.fix_pathinfo = 0;
      
  4. Reinicie os serviços PHP-FPM e NGINX.

    • Reinicie o serviço PHP-FPM.

      sudo systemctl start php-fpm
      
    • Reinicie o serviço NGINX.

      sudo systemctl restart nginx
      
  5. Crie uma página personalizada para que a página Web adequada manipule e teste.

    • Crie uma página 404.php personalizada. Isso é necessário para tratar adequadamente o redirecionamento para uma página 404 personalizada se a página não existir e tentar ser acessada.

      [opc@ih-webserver-01 html]$ sudo nano 404.php
      

      Código da página 404.php personalizada.

      <?php
        header("HTTP/1.0 404 Not Found");
      ?>
      <html>
        <head>
          <title>404 Error - Page Not Found</title>
        </head>
        <body>404 Error - Page Not Found!</body>
      </html>
      
    • Crie uma página info.php personalizada.

      [opc@ih-webserver-01 html]$ sudo nano info.php
      

      Código da página info.php.

      <?php
      
      phpinfo();
      
    • Teste o site info.php que fornece a prova de que o PHP está trabalhando com o NGNIX.

      image

      Quando o site é instalado e configurado corretamente, a página a seguir é exibida. Esta página fornecerá informações sobre seus endereços IPv4 ou IPv6 locais e remotos, dependendo da versão do IP que você usar para estabelecer conexão. Esta página também contará sobre o protocolo que você está usando, HTTP ou HTTPS.

      image

Tarefa 9: Testar o Servidor Web a partir da Internet

Observação: os domínios que usamos neste tutorial foram criados e configurados apenas para fins de teste.

Mesmo que já tenhamos testado a acessibilidade do site ou servidor web usando vários métodos. Gostaríamos de usar o site a seguir para realizar o teste final que testará a acessibilidade e a configuração de registro de DNS de uma só vez. O seu site IPv6 está pronto?

  1. Use o FQDN oci.iwanhoogendoorn.nl para testar.
  2. Verifique se os registros de DNS IPv4 estão configurados corretamente.
  3. Verifique se os registros de DNS IPv6 estão configurados corretamente.
  4. Verifique se o site está acessível em IPv4.
  5. Verifique se o site está acessível em IPv6.

image

Confirmação

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.