Tôi có nhiều ứng dụng ruby chạy trên cùng một máy chủ:
~/app1
~/app2
~/app3
Và tôi muốn có nginx proxy các ứng dụng này bằng các thư mục con như:
http://example.com/app1
http://example.com/app2
http://example.com/app3
Tôi tò mò nếu nginx hỗ trợ tôi có thể xác định các vị trí này trong nhiều tệp, để tôi có thể giữ từng cấu hình với ứng dụng, thay vì có một tệp cấu hình nguyên khối cho tất cả các ứng dụng:
~/app1/nginx.conf
~/app2/nginx.conf
~/app3/nginx.conf
Nỗ lực ngây thơ của tôi trong việc xác định máy chủ với một chỉ thị vị trí duy nhất trong mỗi 3 tệp cấu hình được dẫn đến conflicting server name "example.com" on [::]:80, ignored
với một cấu hình trông như thế này:
upstream app1 { server 127.0.0.1:4567; }
server {
listen [::]:80;
listen 80;
servername example.com
location /app1 {
proxy_pass http://app1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
}
Có cách nào để tổ chức các cấu hình theo cách này?