Nginx: Redirect alamat IP ke nama domain

12

Dengan konfigurasi Nginx berikut:

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;
}

Saya mencoba mengalihkan http://178.62.136.230/ke http://isitmaintained.com/ tetapi ketika saya menggunakan konfigurasi ini saya berakhir dengan salah satu Redirect loopatau kedua tautan tersebut.

Apa yang saya lakukan salah?

Matthieu Napoli
sumber

Jawaban:

30

Coba ini di blok kedua:

server {
    listen 80;
    server_name 178.62.136.230;

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

Masalahnya adalah bahwa listendirektif blok server kedua lebih spesifik daripada blok server pertama, oleh karena itu selalu digunakan. Dan karena blok kedua adalah satu-satunya host virtual untuk listenspesifikasi itu, selalu digunakan.

Tero Kilkanen
sumber
Itu masuk akal. Tetapi ketika saya menerapkan ini, saya mendapatkan kesalahan berikut: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32:( Dan itu tidak masuk akal karena nama domain saya tidak terlalu lama.
Matthieu Napoli
Nah, karena alasan tertentu pengaturan Anda memerlukan lebih banyak ruang penyimpanan untuk nama server virtual host di nginx, jadi Anda harus menambah pengaturan saja.
Tero Kilkanen
Saya minta maaf karena tidak mencoba secara langsung, saya yakin ada sesuatu yang salah. Tapi Anda benar, pengalihan berfungsi sekarang! Terima kasih banyak :)
Matthieu Napoli
Anda adalah F ***** orang yang tepat, memecahkan masalah saya,
terbalik
3

Anda sudah dekat. Menulis ulang yang Anda cari.

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.
}
ticoombs
sumber
5
Ini rewritedan di returnatas melakukan hal yang persis sama.
Tero Kilkanen