Nota

Utilizzare Oracle Cloud Infrastructure per pubblicare un server Web accessibile da Internet con IPv6

Introduzione

In questo tutorial, spiegheremo come creare un server Web (istanza OCI) all'interno di Oracle Cloud Infrastructure (OCI) e renderemo questo server Web accessibile da Internet. Non solo renderemo questo server web accessibile da un indirizzo IPv4 pubblico, ma lo renderemo accessibile anche dall'indirizzo IPv6 pubblico con i record DNS (FQDN) completamente configurati.

immagine

Nota: i domini utilizzati in questa esercitazione sono stati creati e configurati solo a scopo di test.

immagine

Obiettivi

Task 1: creare una nuova VCN con IPv6 abilitato

Ora abbiamo creato una nuova VCN con nuovi spazi di rete IPv4 e IPv6 che possiamo utilizzare per scolpire le subnet IPv4 e IPv6.

Task 2: creare una nuova subnet con IPv6 abilitato

Ora la subnet è pronta per l'uso per gli indirizzi IPv4 e IPv6.

Task 3: creare una nuova istanza con IPv6 abilitato

immagine

Il prossimo task logico sarà quello di accedere all'istanza utilizzando SSH in modo da poter avviare l'installazione e la configurazione del server Web. Quando si tenta di connettersi al server Web utilizzando l'indirizzo IPv4 pubblico e la chiave privata, non è possibile connettersi poiché la VCN creata nel task 1 non dispone di un gateway Internet e ora è necessario creare tale gateway Internet prima nella VCN e anche configurare l'instradamento.

immagine

Task 4: Creare un nuovo gateway Internet e configurare il routing

Per abilitare l'accesso a una nuova istanza (server Web) da Internet, inizialmente utilizzando SSH e alla fine passando a HTTP, dobbiamo stabilire un gateway Internet.

Task 5: Aprire HTTP e HTTPS nell'elenco di sicurezza predefinito

Quando viene creata una nuova VCN, alle subnet all'interno della VCN viene applicato un elenco di sicurezza predefinito. Per impostazione predefinita, ICMP e SSH sono consentiti in entrata (ingress). È necessario aggiungere HTTP e HTTPS a tale elenco per consentire il traffico in entrata per il server Web.

Le regole di sicurezza sono in vigore e il traffico IPv4 e IPv6 è consentito nelle subnet VCN. L'applicazione server Web verrà installata nell'istanza.

Task 6: Installare un server Web nell'istanza

Prima di installare l'applicazione server Web, verificare rapidamente se le porte firewall sono configurate correttamente. Utilizzare il seguente sito Web: IPV6 Online Port Scanner. Questo sito Web dispone di uno scanner di porta IPv6, ma è anche possibile immettere gli indirizzi IPv4.

Task 7: Configurare i record DNS

Nota: i domini utilizzati in questa esercitazione sono stati creati e configurati solo a scopo di test.

Ora, il sito web o webserver è raggiungibile da Internet. Stiamo facendo un passo avanti configurando un FQDN che può essere ricordato più facilmente di un indirizzo IPv4 o di un indirizzo IPv6. Per questa esercitazione viene utilizzato il seguente sottodominio come esempio: oci.iwanhoogendoorn.nl per il nuovo server Web.

Task 8: Creare un sito Web personalizzato con NGINX e PHP

Creeremo un sito web o uno script PHP personalizzato che fornisce un po 'più informazioni sulla rete e gli indirizzi IP con NGINX.

Per integrare NGINX con PHP, segui i passaggi seguenti:

  1. Modificare il file di configurazione PHP-FPM per integrare NGINX.

    Modificare il file /etc/php-fpm.d/www.conf.

    sudo nano /etc/php-fpm.d/www.conf
    
    • Contenuto del file /etc/php-fpm.d/www.conf prima delle modifiche.

      ; 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
      
    • Contenuto del file /etc/php-fpm.d/www.conf dopo le modifiche.

      ; 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. Modificare il file di configurazione NGINX per integrare PHP-FPM.

    • Modificare il file /etc/nginx/conf.d/default.conf.

      [opc@ih-webserver-01 html]$ sudo nano /etc/nginx/conf.d/default.conf
      
    • Aggiungere la seguente configurazione.

      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. Modificare il file di configurazione php.ini.

    • Modificare il file /etc/php.ini.

      [opc@ih-webserver-01 /]$ sudo nano /etc/php.ini
      
    • Assicurarsi che la riga seguente sia presente, modificata o non commentata.

      cgi.fix_pathinfo = 0;
      
  4. Riavviare i servizi PHP-FPM e NGINX.

    • Riavviare il servizio PHP-FPM.

      sudo systemctl start php-fpm
      
    • riavviare il servizio NGINX.

      sudo systemctl restart nginx
      
  5. Creare una pagina personalizzata per la pagina Web corretta da gestire e sottoporre a test.

    • Creare una pagina 404.php personalizzata. Ciò è necessario per gestire correttamente il reindirizzamento a una pagina 404 personalizzata se la pagina non esiste e si sta tentando di accedervi.

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

      Codice per la pagina 404.php personalizzata.

      <?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>
      
    • Creare una pagina info.php personalizzata.

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

      Codice per la pagina info.php.

      <?php
      
      phpinfo();
      
    • Prova il sito web info.php che fornisce la prova che PHP sta lavorando con NGNIX.

      immagine

      Quando il sito web è installato e configurato correttamente viene visualizzata la seguente pagina web. Questa pagina fornisce informazioni sugli indirizzi IPv4 o IPv6 locali e remoti, a seconda della versione IP utilizzata per la connessione. Questa pagina parlerà anche del protocollo che si sta utilizzando, HTTP o HTTPS.

      immagine

Task 9: Testare il server Web da Internet

Nota: i domini utilizzati in questa esercitazione sono stati creati e configurati solo a scopo di test.

Anche se abbiamo già testato la raggiungibilità del sito web o del webserver utilizzando più metodi. Ci piace utilizzare il seguente sito Web per eseguire il test finale che verificherà la raggiungibilità e la configurazione dei record DNS in una sola volta. Il tuo sito IPv6 è pronto?

  1. Utilizzare il nome FQDN oci.iwanhoogendoorn.nl per eseguire il test.
  2. Verificare che i record DNS IPv4 siano configurati correttamente.
  3. Verificare che i record DNS IPv6 siano configurati correttamente.
  4. Verificare che il sito Web sia raggiungibile su IPv4.
  5. Verificare che il sito Web sia raggiungibile su IPv6.

immagine

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.