Tôi đã vật lộn trong 3 ngày với proxy ngược Nginx để nhận ra rằng tôi nghĩ, một điều dễ dàng.
Tôi chỉ cần truy cập nhiều ứng dụng nút đỏ (nodeJS) phụ trợ từ Nginx nhưng luôn luôn, với các cổng khác nhau.
Đối với phần tiếp theo, đây là ví dụ của tôi:
Máy khách web -> `https://ip_adr/1881/ui/` -> Nginx proxy_pass `http://127.0.0.1:1881/ui/` (ứng dụng)
Ứng dụng phụ trợ phục vụ hình ảnh trên http://127.0.0.1:1881/*.jpg
- Tôi nhận ra một bài kiểm tra tĩnh với:
địa điểm / {
#proxy_pass http://127.0.0.1:1881;
}
https://ip_address/ui
trong trình duyệt của tôi chạy tốt với tất cả các hình ảnh ứng dụng.
Với tính năng viết lại để chuyển tiếp cổng từ giao diện người dùng sang phụ trợ, một cách linh hoạt:
vị trí ~ ^/(?<cổng>\d\d\d\d) {
viết lại "^/\d{4}/(.*)" /$1 break;
proxy_pass http://127.0.0.1:$port;
}
Với regex, tôi trích xuất cổng từ ip_adr/1881 với /(?<cổng>\d\d\d\d)
và viết lại url mà không cần /1881
nhưng giữ cuối cùng /path1/path2/...
Nếu tôi đặt https://192.168.x.x/1881/ui/
trong trình duyệt của tôi mọi thứ đều tốt nhưng KHÔNG CÓ hình ảnh.
Sau nhiều lần kiểm tra, trình duyệt của tôi không hiển thị bất kỳ hình ảnh nào và nhật ký lỗi theo dõi cho biết tôi cho tất cả hình ảnh:
10/03/2022 01:01:36 [lỗi] 50065#50065: *1224 open() "/usr/share/nginx/html/schema_fire_EEU.jpg" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 192.168 .1.29, máy chủ: exemple3.test.fr, yêu cầu: "GET /schema_fire_EEU.jpg HTTP/1.1", máy chủ: "192.168.1.53", liên kết giới thiệu: "https://192.168.1.53/1881/ui/"
Điều đó thật khó tin, nếu tôi đặt https://192.168.x.x/1881/schema_fire_EEU.jpg
, tôi có thể hiển thị hình ảnh này!!!
Tôi nghĩ, có một vấn đề với dấu gạch chéo ...
Ai đó có thể giúp tôi ?
Chúc bạn ngày mới tốt lành ;-)