Tôi biết đã có rất nhiều bài viết về nginx + viết lại nhưng tôi gặp trường hợp không thể làm cho nó hoạt động bình thường.
Tôi có nhiều ứng dụng bình dockerized, hãy đặt tên cho nó: vm1
,vm2
,vm3
...vm6
Tôi có một miền:
manager.mydomain.com
Những gì tôi muốn đạt được:
khi người dùng điều hướng đến
https://manager.mydomain.com/vm6
được chuyển hướng, ví dụ: đến
https://manager.mydomain.com/vm6/login
(và các thiết bị đầu cuối khác /admin ....)
Vì vậy, nói chung là được bảo hiểm https://manager.mydomain.com/vm6/(.*)
được chuyển hướng đến ứng dụng bình.
Thật không may, có những liên kết cũng sẽ được viết lại.
Thử nghiệm hiện tại của tôi:
http {
quản lý ngược dòngvm4 {
less_conn;
máy chủ X.X.X.X:5004;
}
quản lý ngược dòngvm6 {
less_conn;
máy chủ Y.Y.Y.Y:5006;
}
người phục vụ {
server_name manager.mydomain.com;
nghe 443 ssl;
ssl_certificate /etc/letsencrypt/live/manager.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/manager.mydomain.com/privkey.pem;
access_log /var/log/nginx/dtmanager.access.log;
error_log /var/log/nginx/dtmanager.error.log;
log_subrequest bật;
vị trí /vm6 {
viết lại ^/vm6$ https://manager.mydomain.com/vm6/ vĩnh viễn;
}
vị trí /vm6/ {
# viết lại /vm6/(.*) /vm6/$1 ngắt;
sub_filter '"/' '"/vm6/';
sub_filter_once tắt;
proxy_pass http://managervm6/;
#proxy_redirect tắt;
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Khi tôi điều hướng
cuộn tròn -i https://manager.mydomain.com/vm6/admin
Tôi nhận được phản hồi:
Máy chủ: nginx/1.13.9
Ngày: T6, 02/07/2021 09:14:40 GMT
Loại nội dung: văn bản/html; bộ ký tự = utf-8
Mã hóa truyền: chunked
Kết nối: giữ nguyên
Vị trí: http://manager.mydomain.com/admin/
NHƯNG nếu tôi điều hướng đến
cuộn tròn -i https://manager.mydomain.com/vm6/login
Tôi nhận được phản hồi chính xác, nhưng sau đó đăng nhập không hoạt động (tôi đoán đã xảy ra sự cố khi chuyển hướng)
Tôi đang làm gì sai?
Cảm ơn!