Tôi cần một cách để chuyển hướng máy khách khi không có đường dẫn hiện có nào được xác định. Khi tôi đặt cấu hình trả về 301, nginx dường như bỏ qua mọi cấu hình vị trí. Nó chuyển hướng mọi thứ.
Tên máy chủ trong chuyển hướng cần phải động (đến từ máy khách). Các máy chủ này thực sự là các thùng chứa và được triển khai cho môi trường Dev/Prod. Vì vậy, url máy khách thay đổi từ một cái gì đó như dev.example.com thành example.com. Tôi không muốn hoán đổi cấu hình dựa trên môi trường.
Tôi đang sử dụng v1.18 trên RHEL. Các máy chủ được ủy quyền là các ứng dụng Góc được quản lý bởi các nhà phát triển tương ứng của chúng.
người phục vụ {
nghe 80;
tên máy chủ _;
chỉ số index.html;
vị trí = /dịch vụ/a {
proxy_pass http://svc-a.local/service/a/;
}
địa điểm /dịch vụ/a/ {
proxy_pass http://svc-a.local/service/a/;
}
vị trí = /dịch vụ/b {
proxy_pass http://svc-b.local/service/b/;
}
địa điểm /dịch vụ/b/ {
proxy_pass http://svc-b.local/service/b/;
}
vị trí = /dịch vụ/x {
proxy_pass http://svc-x.local/service/x/;
}
địa điểm /dịch vụ/x/ {
proxy_pass http://svc-x.local/service/x/;
}
vị trí = /nhà {
proxy_pass http://home.local/home/;
}
địa điểm /nhà/ {
proxy_pass http://home.local/home/;
}
# kubernetes thăm dò điều này, nhưng không nhận được 301
vị trí /nginx_status {
stub_status trên;
truy cập_đăng xuất;
}
# NẾU KHÔNG CÓ TRẬN ĐẤU TRÊN THÌ VỀ /HOME
#thử #1
trả về 301 http://$host/home/;
#thử #2
vị trí = / {
trả về 301 http://$host/home/;
}
#thử #3
trả về 301 /nhà/;
#thử #4
vị trí = / {
proxy_pass http://home.local/home/;
}
}