Nginx: Chuyển hướng địa chỉ IP sang tên miền


12

Với cấu hình Nginx sau:

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

Tôi đang cố gắng chuyển hướng http://178.62.136.230/đến http://isitmaintained.com/ nhưng khi tôi triển khai cấu hình này, tôi kết thúc bằng một Redirect loophoặc cả hai liên kết đó.

Tôi đang làm gì sai?

Câu trả lời:


30

Hãy thử điều này trên khối thứ hai:

server {
    listen 80;
    server_name 178.62.136.230;

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

Vấn đề là listenchỉ thị khối máy chủ thứ hai cụ thể hơn khối máy chủ thứ nhất, do đó nó luôn được sử dụng. Và vì khối thứ hai là máy chủ ảo duy nhất cho listenđặc tả đó, nên nó luôn được sử dụng.


Điều đó có ý nghĩa. Nhưng khi tôi áp dụng điều này, tôi gặp phải lỗi sau: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32:( Và điều đó không có nghĩa gì vì tên miền của tôi không dài như vậy.
Matthieu Napoli

Chà, vì một số lý do, thiết lập của bạn yêu cầu nhiều không gian lưu trữ hơn cho tên máy chủ lưu trữ ảo trong nginx, vì vậy bạn chỉ nên tăng cài đặt.
Tero Kilkanen

Tôi xin lỗi vì đã không cố gắng trực tiếp, tôi chắc chắn có điều gì đó không đúng. Nhưng bạn đã đúng, chuyển hướng hoạt động ngay bây giờ! Một lời cảm ơn rất nồng nhiệt :)
Matthieu Napoli

bạn là người đàn ông đúng đắn, đã giải quyết một vấn đề của tôi, được nâng cấp, thnx
a_m_dev

3

Bạn đã gần. Nó viết lại mà bạn đang tìm kiếm.

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
Điều này rewritereturnở trên làm chính xác điều tương tự.
Tero Kilkanen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.