17 Settembre 2022

Come Abilitare WordPress Loopback Connections?

Ci siamo imbattuti in alcuni plugin che richiedono l’abilitazione di WordPress Loopback, vediamo cos’è e come si abilita.

Abilitare WordPress Loopback Connections

Assistendo un nostro cliente sviluppatore nella manutenzione ed ottimizzazione di un importante sito di attrezzi da bricolage realizzato di piattaforma WordPress e con l’ausilio di WooCommerce, ci siamo imbattuti per la prima volta in una richiesta quanto meno singolare: l’abilitazione delle connessioni Loopback per WordPress.

 

Nello specifico il plugin WooCommerce Customer / Order / Coupon Export ci richiedeva proprio questa feature abilitata a livello server al fine di poter elaborare in background l’export degli ordini.

Ad esempio, nella sezione Requirements  (di cui riportiamo lo screenshot di seguito), era ben chiara ed eloquente la richiesta che il sito dovesse supportasse il “Background Processing” per automatizzare l’esportazione dei dati in background.

Il test di diagnosi del plugin anche era piuttosto chiaro, ed il responso del test era che il nostro hosting stava mancando di questa nuova feature assolutamente vitale ed indispensabile per poter far funzionare la feature dei processi in background.

Automated Exports are currently unavailable because your site does not support background processing. To use automated exports, please ask your hosting company to ensure your server has loopback connections enabled, or switch to a recommended hosting provider. In the meantime, you can process manual exports by enabling the Batch processing setting.

di cui riportiamo per brevità la rispettiva traduzione in lingua italiana:

Le esportazioni automatiche non sono attualmente disponibili perché il tuo sito non supporta l’elaborazione in background. Per utilizzare le esportazioni automatiche, chiedi alla tua società di hosting di assicurarsi che il tuo server abbia le connessioni di loopback abilitate o passa a un provider di hosting consigliato. Nel frattempo, puoi elaborare le esportazioni manuali abilitando l’impostazione Elaborazione batch.

Cercando online su Google le possibili cause e motivazioni, ci siamo trovati di fronte una miriade di risposte purtroppo errate. Seguendo quei tutorial, infatti, si arriva al massimo a risolvere delle problematiche inerenti ai Cron di WordPress, wp-cron.php e simili, che non ha niente a che vedere con la richiesta sopra.

Anche leggendo guide di Hoster statunitensi famosi e persino il supporto di WordPress si arrivano a interpretazioni completamente errate della vicenda che porta solo ad effettuare tentativi che non solo non portano a nessuna soluzione efficace, ma portano fuori strada, lasciandoci entrare in ragionamenti e tentativi che portano solo al continuo fallimento.

La soluzione per abilitare WordPress Loopback Connections

Dopo alcuni tentativi abbiamo approcciato con un pizzico di intuito tenendo in considerazione le nozioni in nostro possesso, ovvero che sui sistemi informatici, sia UNIX, che Linux che Windows, (verosimilmente tutti i sistemi operativi che dispongono di uno stack TCP/IP) quando si parla di loopback (o interfaccia di loopback) si fa sempre riferimento a quell’indirizzo 127.0.0.1 che fa riferimento al famoso localhost.

Nelle reti di computer, l’interfaccia di loopback permette la comunicazione tra processi, ma esclusivamente tra processi che sono eseguiti nella stessa macchina. Un esempio tipico di utilizzo è quello in cui si deve testare il funzionamento di un server web, realizzando una connessione con un client eseguito sulla stessa macchina su cui è eseguito anche il server.

127.0.0.1

All’interfaccia di loopback, come ad ogni altra interfaccia di rete, si deve attribuire un indirizzo IP. Secondo gli standard internazionali della Internet Engineering Task Force (IETF) l’interfaccia di loopback può utilizzare per convenzione questi indirizzi riservati:

  • 127.0.0.1/32, cioè un indirizzo appartenente al blocco di indirizzi IPv4 127.0.0.0/8 secondo la notazione CIDR
  • un indirizzo IPv6 0:0:0:0:0:0:0:1/128 che può essere indicato anche come ::1/128

Pertanto, abbiamo deciso di modificare la configurazione del Web Server NGINX aggiungendo oltre che l’ascolto sull’indirizzo IPv4 pubblico, anche l’ascolto sull’indirizzo di loopback 127.0.0.1

Ovvero la configurazione da questa precedente:

server {
listen 65.108.12.1:80;
server_name nomesito.it www.nomesito.it;
## redirect http to https ##
rewrite ^ https://$server_name$request_uri? permanent;
}


server {
listen 65.108.12.1:443 ssl http2;
server_name nomesito.it www.nomesito.it;
root /home/nomesito.it/htdocs/;

è stata modificata come questa seguente:

server {
listen 65.108.12.1:80;
listen 127.0.0.1:80;
server_name nomesito.it www.nomesito.it;
## redirect http to https ##
rewrite ^ https://$server_name$request_uri? permanent;
}


server {
listen 65.108.12.1:443 ssl http2;
listen 127.0.0.1:443 ssl http2;
server_name nomesito.it www.nomesito.it;
root /home/nomesito.it/htdocs/;

ed il test del plugin ha dato finalmente esito positivo permettendo di effettuare connessioni in loopback per avviare l’esportazione degli ordini in background.

La configurazione sopra ovviamente tiene conto dell’utilizzo del performante NGINX piuttosto che dell’obsoleto Web Server Apache; tuttavia, il concetto alla base è esattamente lo stesso e basta adattarlo alla sintassi del file di configurazione per i virtual host di Apache per ottenere lo stesso identico risultato.

Considerazioni sulle problematiche e limitazioni possibili

In merito alla procedura sopra descritta non c’è molto da dire se non che effettivamente quella sia la soluzione e che il plugin abbia iniziato a funzionare correttamente dopo l’implementazione della connessione di Loopback per WordPress, tuttavia, bisogna anche tenere in considerazione che questa operazione è stata possibile solo perché il nostro cliente disponeva presso la nostra gestione managed di un server dedicato in cui aveva la possibilità di modificare (o far modificare la configurazione) a proprio piacimento.

Un grado di libertà e un margine di manovra possibile in un ambiente dedicato ma non altrettanto possibile, ad esempio, in uno shared hosting condiviso.

Oltretutto nel nostro caso specifico in cui utilizziamo Varnish Cache, utilizziamo l’indirizzo di Loopback 127.0.0.1 per mettere in ascolto Varnish sulla porta 80 come da prassi consueta. Di fatto sebbene sia possibile cambiare l’indirizzo IP di ascolto ed anche la porta (molte configurazioni ascoltano sulla 8080 ad esempio), la consuetudine porta a considerare dai vari plugin che si interfacciano con Varnish per operazioni di PURGE della cache (vedi plugin come Varnish Purge, Proxy Purge o W3 Total Cache) l’indirizzo 127.0.0.1 e la porta 80 come indirizzo di default a cui connettersi per effettuare le operazioni di PURGE.

La necessità, dunque, di mettere in ascolto la nuova configurazione NGINX anche sul 127.0.0.1:80 ci ha portato necessariamente a dover variare l’indirizzo su cui ascoltava Varnish al nuovo 127.0.0.2 e rivedere tutte le configurazioni dei vari vhost NGINX che agisce come terminatore (per fortuna ne erano solo 4) di fare un reverse proxy sul nuovo indirizzo Varnish.

Si capisce facilmente dunque come in caso di configurazioni standardizzate o provider che utilizzano i canonici indirizzi, sia impossibile forzare la mano in autonomia per risolvere il problema aggiungendo regole alla configurazione che ovviamente non potrà funzionare.

Se anche voi che state leggendo state trovando difficoltà nell’abilitare le loopback connections per WordPress e non riuscite a trovare un fornitore di hosting accondiscendente a seguire questa guida per permettervi di risolvere la problematica aggiungendo l’indirizzo di loopback in ascolto sul vostro sito Web, contattateci pure.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

SOLO UN ATTIMO !

Vorresti vedere come gira il tuo WooCommerce sui nostri sistemi senza dover migrare nulla ? 

Inserisci l'indirizzo del tuo sito WooCommerce e otterrai una dimostrazione navigabile, senza dover fare assolutamente nulla e completamente gratis.

No grazie, i miei clienti preferiscono il sito lento.
Torna in alto