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.