Nginx: reindirizza l'indirizzo IP al nome di dominio


12

Con la seguente configurazione Nginx:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

Sto cercando di reindirizzare http://178.62.136.230/a http://isitmaintained.com/ ma quando distribuisco questa configurazione finisco con uno Redirect loopo entrambi quei collegamenti.

Che cosa sto facendo di sbagliato?

Risposte:


30

Prova questo sul secondo blocco:

server {
    listen 80;
    server_name 178.62.136.230;

    return 301 $scheme://isitmaintained.com$request_uri;
}

Il problema è che la seconda listendirettiva del blocco server è più specifica del primo blocco server, quindi viene sempre utilizzata. E poiché il secondo blocco è l'unico host virtuale per quella listenspecifica, viene sempre utilizzato.


Ha senso. Ma quando applico questo, ottengo il seguente errore: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32:( E questo non ha senso perché il mio nome di dominio non è così lungo.
— Matthieu Napoli,

Bene, per qualche motivo la tua configurazione richiede più spazio di archiviazione per i nomi del server host virtuale in nginx, quindi dovresti semplicemente aumentare l'impostazione.
— Tero Kilkanen,

Mi scuso per non aver provato direttamente, ero sicuro che ci fosse qualcosa di sbagliato. Ma avevi ragione, il reindirizzamento funziona ora! Un caloroso grazie :)
— Matthieu Napoli,

sei F ***** uomo giusto, risolto un mio problema, votato, grazie
— a_m_dev

3

Eri vicino. È la riscrittura che stai cercando.

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}

5
Questo rewritee returnsoprattutto fanno esattamente la stessa cosa.
— Tero Kilkanen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.