2016-01-27 14 views
6

Tôi đang sử dụng ký tự đại diện trong server_name. Tôi muốn chuyển hướng tất cả các tên miền phụ của example.com (cấu hình như * example.com) để foo.com trừ xyz.example.comCách loại trừ tên miền phụ cụ thể server_name trong cấu hình nginx

tôi có cấu hình như sau

server { 
     listen   80; 
     server_name  *.example.com; 
     location/{ 
      proxy_pass  http://$1.foo.com; 
     } 
} 

Tôi không muốn thay đổi bất kỳ yêu cầu đến xyz.example.com

Trả lời

4

Bạn cần ít nhất hai khối máy chủ và nginx sẽ chọn khối máy chủ cụ thể hơn để xử lý yêu cầu. Xem this document để biết chi tiết.

Bạn sẽ cần một khối máy chủ cho xyz.example.com như:

server { 
    listen  80; 
    server_name xyz.example.com; 

    location/{ 
     proxy_pass http://$1.foo.com; 
    } 
} 

Sau đó, hoặc là một default_server hoặc một máy chủ thẻ hoang dã, chẳng hạn như:

server { 
    listen 80; 
    server_name *.example.com; 
    return http://foo.com/; 
} 

Hoặc:

server { 
    listen 80 default_server; 
    return http://foo.com/; 
} 
+0

Cảm ơn @Richard điều này đang làm việc cho tôi. –

Các vấn đề liên quan