Note:

Uso de Oracle Cloud Infrastructure para publicar un servidor web accesible desde Internet con IPv6

Introducción

En este tutorial, vamos a explicar cómo podemos crear un servidor web (instancia de OCI) dentro de Oracle Cloud Infrastructure (OCI) y haremos que este servidor web sea accesible desde Internet. No solo vamos a hacer que este servidor web sea accesible desde una dirección IPv4 pública, sino que también lo haremos accesible desde la dirección IPv6 pública con los registros DNS (FQDN) completamente configurados.

image

Nota: Los dominios que hemos utilizado en este tutorial se han creado y configurado solo con fines de prueba.

image

Objetivos

Tarea 1: Crear una nueva VCN con IPv6 activado

Ahora hemos creado una nueva VCN con nuevos espacios de red IPv4 y IPv6 que podemos utilizar para tallar subredes IPv4 y IPv6.

Tarea 2: Crear una nueva subred con IPv6 activado

Ahora la subred está lista para su uso para las direcciones IPv4 y IPv6.

Tarea 3: Creación de una nueva instancia con IPv6 activado

image

La siguiente tarea lógica será acceder a la instancia mediante SSH para que podamos empezar a instalar y configurar el servidor web. Cuando intentamos conectarnos al servidor web mediante la dirección IPv4 pública y la clave privada, no podemos conectarnos porque la VCN creada en la tarea 1 no tiene ningún gateway de Internet y ahora tenemos que crear ese gateway de Internet primero en la VCN y también configurar el enrutamiento.

image

Tarea 4: Crear un nuevo gateway de Internet y configurar el enrutamiento

Para permitir el acceso a una nueva instancia (servidor web) desde Internet, inicialmente mediante SSH y, finalmente, mediante la transición a HTTP, debemos establecer un gateway de Internet.

Tarea 5: Abrir HTTP y HTTPS en la lista de seguridad por defecto

Cuando se crea una nueva VCN, se aplica una lista de seguridad por defecto a las subredes de esa VCN. Por defecto, ICMP y SSH están permitidos en entrada (entrada). Necesitamos agregar HTTP y HTTPS a esa lista para permitir el tráfico entrante para el servidor web.

Las reglas de seguridad están establecidas y se permite el tráfico IPv4 y IPv6 en las subredes de VCN. Instalaremos la aplicación de servidor web en la instancia.

Tarea 6: Instalación de un servidor web en una instancia

Antes de instalar la aplicación de servidor web, valide rápidamente si los puertos de firewall están configurados correctamente. Utilice el siguiente sitio web IPV6 Online Port Scanner. Este sitio web tiene un escáner de puerto IPv6, pero también puede introducir direcciones IPv4.

Tarea 7: Configuración de registros DNS

Nota: Los dominios que hemos utilizado en este tutorial se han creado y configurado solo con fines de prueba.

Ahora, el sitio web o servidor web es accesible desde Internet. Vamos un paso más allá configurando un FQDN que se pueda recordar más fácilmente que una dirección IPv4 o una dirección IPv6. Para este tutorial, utilizamos el siguiente subdominio como ejemplo: oci.iwanhoogendoorn.nl para el nuevo servidor web.

Tarea 8: Crear un sitio web personalizado con NGINX y PHP

Crearemos un sitio web o script PHP personalizado que proporcione un poco más de información sobre la red y las direcciones IP con NGINX.

Para integrar NGINX con PHP, siga los pasos siguientes:

  1. Edite el archivo de configuración de PHP-FPM para integrar NGINX.

    Edite el archivo /etc/php-fpm.d/www.conf.

    sudo nano /etc/php-fpm.d/www.conf
    
    • Contenido del archivo /etc/php-fpm.d/www.conf antes de los cambios.

      ; 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
      
    • Contenido del archivo /etc/php-fpm.d/www.conf después de los cambios.

      ; 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 el archivo de configuración de NGINX para integrar PHP-FPM.

    • Edite el archivo /etc/nginx/conf.d/default.conf.

      [opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
      
    • Agregue la siguiente configuración.

      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 el archivo de configuración php.ini.

    • Edite el archivo /etc/php.ini.

      [opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
      
    • Asegúrese de que la siguiente línea esté presente, modificada o sin comentarios.

      cgi.fix_pathinfo = 0;
      
  4. Reinicie los servicios PHP-FPM y NGINX.

    • Reinicie el servicio PHP-FPM.

      sudo systemctl start php-fpm
      
    • Reinicie el servicio NGINX.

      sudo systemctl restart nginx
      
  5. Cree una página personalizada para que la página web adecuada la gestione y pruebe.

    • Cree una página 404.php personalizada. Esto es necesario para manejar correctamente la redirección a una página 404 personalizada si la página no existe y se intenta acceder a ella.

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

      Código para la página personalizada 404.php.

      <?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>
      
    • Cree una página info.php personalizada.

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

      Código para la página info.php.

      <?php
      
      phpinfo();
      
    • Pruebe el sitio web info.php que proporciona la prueba de que PHP está trabajando con NGNIX.

      image

      Cuando el sitio web está instalado y configurado correctamente, se muestra la siguiente página web. Esta página proporcionará información sobre las direcciones IPv4 o IPv6 locales y remotas en función de la versión de IP que utilice para conectarse. Esta página también informará sobre el protocolo que está utilizando, HTTP o HTTPS.

      image

Tarea 9: Prueba del Servidor Web desde Internet

Nota: Los dominios que hemos utilizado en este tutorial se han creado y configurado solo con fines de prueba.

A pesar de que ya hemos probado la accesibilidad del sitio web o servidor web utilizando múltiples métodos. Nos gusta utilizar el siguiente sitio web para realizar la prueba final que probará la accesibilidad y la configuración del registro DNS de una sola vez. ¿Está listo su sitio IPv6?

  1. Utilice el FQDN oci.iwanhoogendoorn.nl para realizar la prueba.
  2. Verifique que los registros DNS IPv4 estén configurados correctamente.
  3. Verifique que los registros DNS IPv6 estén configurados correctamente.
  4. Compruebe que se puede acceder al sitio web en IPv4.
  5. Compruebe que se puede acceder al sitio web en IPv6.

image

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.