Làm cách nào để đảo ngược proxy đến các địa điểm khác nhau tùy thuộc vào tên miền phụ trong Nginx?


13

Tôi có nhiều tên miền phụ, tất cả đều trỏ đến một máy và một địa chỉ IP. Trên máy này, tôi muốn có nginx hoạt động như một proxy ngược và tùy thuộc vào tên miền phụ nào được sử dụng để truy cập vào máy, tôi muốn nó đảo ngược proxy sang một máy chủ khác. Tất cả các ví dụ tôi đã thấy về việc sử dụng nginx làm việc sử dụng proxy ngược location, nhưng theo tôi hiểu rằng chỉ hoạt động cho đường dẫn, không phải cho các tên miền phụ khác nhau. Làm thế nào tôi có thể đạt được những gì tôi muốn?


2
Điều này có thể là một chút quá rộng. Bạn có thể đăng thêm về những gì bạn đã thử?
Sẽ

Câu trả lời:


27

Trừ khi tôi hoàn toàn đọc sai câu hỏi của bạn: Bạn chỉ cần thiết lập các khối máy chủ cho mỗi tên miền phụ và xác định proxy ngược chính xác cho thư mục gốc của tên miền phụ đó, tức là một cái gì đó dọc theo dòng:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

Xin lỗi vì phản hồi muộn, nhưng tôi đã làm cho nó hoạt động!
markasoftware 4/2/2016

3

Khá nhiều cách tương tự.

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}

1
Đây không phải là chính xác những gì tôi đang tìm kiếm. Xem câu trả lời được chấp nhận
markasoftware 4/2/2016

1
Nhai và tiêu hóa là gánh nặng của người yêu cầu, không phải của tôi.
drookie
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.