Tôi đã thiết lập NGINX, phiên bản 1.18.0, làm proxy ngược cho bản cài đặt Apache Superset 1.4.0 của mình.
Tôi đang cố nắm bắt một số mẫu URL và viết lại chúng bằng cách thêm độc lập = 1
cuối cùng.
Cấu hình NGINX sau hoạt động như mong đợi:
vị trí /superset/khám phá/ {
if ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
viết lại ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 break;
}
proxy_pass http://127.0.0.1:8087;
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 $scheme;
}
Bởi vì khi tôi truy cập (bằng Chrome) một URL chẳng hạn như http://192.168.239.40:8088/superset/explore/?form_data=%7B%22viz_type%22%3A%22echarts_timeseries_line%22%2C%22datasource%22%3A%2233__table%22%2C%22slice_id%22%3A133% 2C...
, tôi có thể thấy rằng nó được thay thế bằng dấu cộng ban đầu &độc lập=1
được thêm vào URL khi tôi kiểm tra thanh địa chỉ Chrome.
Nhưng khi tôi cố gắng làm điều gì đó tương tự cho một mẫu URL khác cho Apache Superset, chẳng hạn như sau:
vị trí /bảng điều khiển/danh sách/ {
viết lại ^/dashboard/list/(.*)$ /dashboard/list/$1?standalone=1 break;
proxy_pass http://127.0.0.1:8087;
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 $scheme;
}
và tôi yêu cầu http://192.168.239.40:8088/dashboard/list/
với Chrome, tôi thấy thanh địa chỉ được thay thế bằng http://192.168.239.40:8088/dashboard/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc&viewMode=table
nhưng tôi không thấy bất kỳ &độc lập=1
nối thêm.
Tôi cũng đã kiểm tra nhật ký Superset để xem nó phục vụ những gì sau khi tôi yêu cầu http://192.168.239.40:8088/dashboard/list/
và tôi thấy rằng ?độc lập=1
thực sự được thêm vào!
Ngày 10 tháng 2 14:09:19 python máy chủ bảng điều khiển[34169]: 2022-02-10 14:09:19,482:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:19] "NHẬN / bảng điều khiển/danh sách/?độc lập=1 HTTP/1.0" 200 -
Ngày 10 tháng 2 14:09:20 python máy chủ bảng điều khiển[34169]: 2022-02-10 14:09:20,729:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:20] "NHẬN / api/v1/dashboard/_info?q=(keys:!(permissions)) HTTP/1.0" 200 -
Ngày 10 tháng 2 14:09:20 python máy chủ bảng điều khiển[34169]: 2022-02-10 14:09:20,771:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:20] "NHẬN / api/v1/dashboard/?q=(order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:25) HTTP/1.0" 200 -
Có ý kiến giải thích tại sao điều này lại xảy ra không?
Hoàn chỉnh /etc/nginx/conf.d/superset.conf
là như sau:
người phục vụ {
nghe 8088 ;
server_name 192.168.239.40;
địa điểm / {
proxy_pass http://127.0.0.1:8087;
}
vị trí /superset/khám phá/ {
if ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
viết lại ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 break;
}
proxy_pass http://127.0.0.1:8087;
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 $scheme;
}
vị trí /bảng điều khiển/danh sách/ {
viết lại ^/dashboard/list/(.*)$ /dashboard/list/$1?standalone=1 break;
proxy_pass http://127.0.0.1:8087;
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 $scheme;
}
# bắt buộc vì superset có các url đường dẫn cơ sở được mã hóa cứng
vị trí /tĩnh/ {
proxy_pass http://127.0.0.1:8087/static/;
}
# để hiển thị trang tổng quan cụ thể bằng url tùy chỉnh
# ví dụ dưới đây sẽ cung cấp bảng điều khiển 2 ở chế độ độc lập
# trên $host/dashboards/my-dashboard
vị trí /dashboards/my-dashboard {
proxy_pass http://127.0.0.1:8087/superset/dashboard/2/?standalone=true;
}
}