Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Reindirizzare il traffico web a una porta specifica
Questa guida riguarda la redirezione del traffico web verso una porta specifica, anche in caso di utilizzo di un IP dedicato e di un'applicazione web specifica (come Node o Varnish, ad esempio).
Prerequisiti
- Aggiungi un sito al tuo hosting.
- Installa
HAProxysul Server Cloud.
Reindirizzare il traffico web a una porta specifica
Per impostazione predefinita, su Cloud Server, il traffico web viene inviato ad Apache. Per inviare le richieste a uno script Node o a un altro servizio (a condizione che "ascolti" su una porta compresa tra 4000 e 4009), è necessario utilizzare HAProxy.
Questo vale in particolare per i server Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails, e persino eventualmente Java (J2E), ecc.
A tal fine, è necessario assicurarsi che il servizio sia in ascolto su una porta compresa tra 4000 e 4009 (ad esempio, con server.listen(4000) per Express o un server HTTP Node di base, ma a seconda del tipo di progetto, anche tramite altri metodi, un file di configurazione, nel codice o altro) e su tutte le interfacce (0.0.0.0).
Sarà inoltre necessario configurare HAProxy come nell'esempio seguente:
- Clicca qui per accedere alla gestione del tuo Server Cloud nel Manager Infomaniak (hai bisogno di aiuto?).
- Fate clic direttamente sul nome assegnato al server Cloud in questione.
- Fate clic su Installazione rapida nel menu laterale sinistro.
- Fare clic sul menu azioni ⋮ situato a destra di
HAProxy. - Fare clic su Configura:

- Seleziona le informazioni desiderate e salva:

Caso particolare degli alias e dei caratteri jolly
La configurazione di HAProxy tramite l'Installazione Rapida si applica esclusivamente al dominio principale dell'hosting.
Attualmente, gli alias di dominio (sia specifici che di tipo wildcard come *.domain.xyz) non sono supportati nativamente da questo strumento.
Per reindirizzare il traffico di un alias alla tua applicazione (che ascolta, ad esempio, sulla porta 4000), devi configurare manualmente una regola di tipo "proxy" nel file .htaccess situato nella directory principale del tuo sito:
# Redirect all traffic to the application (e.g., Node.js on port 4000)
RewriteEngine On
RewriteRule ^(.*)$ {{URL_6}} [P,L]Senza questa direttiva manuale, tutte le richieste corrispondenti ai tuoi alias o wildcard verranno reindirizzate per impostazione predefinita ad Apache anziché alla tua applicazione specifica.
Recupero dell'IP di origine di una richiesta
Quando si reindirizza il traffico web verso la propria applicazione web, l'elaborazione delle richieste cambia e la richiesta viene inizialmente ricevuta da un proxy inverso (locale al server) che la inoltra quindi alla porta scelta. Di conseguenza, a causa del trasferimento della richiesta, i metodi che solitamente vengono utilizzati per recuperare l'IP del visitatore restituiranno l'IP del proxy inverso invece di quello del visitatore.
Pertanto, per recuperare l'IP di origine reale del visitatore in questi casi, è necessario consultare un header HTTP denominato X-Forwarded-For, che conterrà gli IP di origine accumulati durante ogni reindirizzamento. Questo header conterrà quindi, in ultima posizione, l'indirizzo IP originale del client, consentendo di identificare il visitatore reale.
Attenzione: è importante notare che gli header HTTP possono essere manipolati, il che comporta rischi per la sicurezza. Per ridurre al minimo questi rischi, si consiglia di verificare che la richiesta provenga effettivamente da un server affidabile prima di fidarsi del contenuto dell'header X-Forwarded-For. Questa verifica può comportare l'accertamento che la richiesta sia stata trasmessa da un server intermedio affidabile, identificato tramite un elenco predefinito di indirizzi IP. Nel caso in cui il sito utilizzi un IP dedicato, i server affidabili sono:
- 83.166.133.15
- 83.166.133.17
- 83.166.133.16
- 84.16.92.5
- 84.16.92.43
- 10.2.32.255
- 10.2.34.164
Link a questa FAQ: https://faq.infomaniak.com/2171
Questa FAQ è stata utile?