Tôi có yêu cầu này, nơi có nhiều ứng dụng đường ray. Mỗi ứng dụng được triển khai trong hai máy chủ ứng dụng, (app1 và app2) và chúng được tải cân bằng thông qua nginx trên một máy chủ riêng biệt (lb).nginx trên máy chủ proxy_pass riêng biệt cho nhiều ứng dụng đường ray với URI phụ trên hành khách độc lập trong các hộp khác nhau
Hộp lb chứa đồng bằng vanilla nginx mà không cần bổ sung hành khách. Các ứng dụng đường ray được triển khai trên hành khách đứng một mình.
Tất cả các đường ray ứng dụng cần phải chạy trên cùng một tên miền nhưng với sub_uri khác nhau, như dưới đây
http://www.example.com/rails1 http://www.example.com/rails2
Tôi có hộp lb cấu hình nginx một cái gì đó như dưới đây.
http {
...
upstream rails1_cluster {
ip_hash;
server app1.server:3001;
server app2.server:3001;
}
upstream rails2_cluster {
ip_hash;
server app1.server:3002;
server app2.server:3002;
}
...
server {
server_name www.example.com;
...
...
location /rails1 {
proxy_pass http://rails1_cluster;
...
}
location /rails2 {
proxy_pass http://rails2_cluster;
...
}
....
}
}
Với cài đặt này, ứng dụng chạy trên hành khách độc lập trong app1 và app2 sẽ phát hiện lỗi không thể tìm thấy bất kỳ tuyến đường/đường ray1 /.
Bài viết này "How To Deploy Phusion Passenger To A Subdirectory, Routing Errors, And Restarting" cố gắng giải quyết cùng một vấn đề, nhưng nó gợi ý việc thay đổi các tuyến đường mà tôi không muốn làm. Các ứng dụng Rails đang xử lý có cùng mã cơ sở nhưng được tùy chỉnh cho các trường hợp cụ thể phục vụ cho một máy khách cụ thể.
Trong plugin hành khách cho máy chủ Nginx, có một hành khách_base_uri giúp thiết lập URI phụ cho ứng dụng. Tương đương với trường hợp của hành khách đứng một mình là gì? Hoặc tôi thiếu một cái gì đó cơ bản ở đây? Bất kỳ trợ giúp, đề xuất nào sẽ hữu ích.