ฉันได้ตั้งค่า NGINX เวอร์ชัน 1.18.0 เป็นพร็อกซีย้อนกลับสำหรับการติดตั้ง Apache Superset 1.4.0 ของฉันแล้ว
ฉันกำลังพยายามจับภาพรูปแบบ URL และ เขียนใหม่ โดยการเพิ่ม สแตนด์อโลน = 1
ในตอนท้าย
การกำหนดค่า NGINX ต่อไปนี้ทำงานตามที่คาดไว้:
ที่ตั้ง /superset/สำรวจ/ {
ถ้า ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
เขียนใหม่ ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 break;
}
proxy_pass http://127.0.0.1:8087;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
เพราะเมื่อฉันเยี่ยมชม (ด้วย Chrome) URL เช่น 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% ทูซี ...
ฉันเห็นว่ามันถูกแทนที่ด้วยเครื่องหมายบวกเดิม &สแตนด์อโลน=1
เพิ่มไปยัง URL เมื่อฉันตรวจสอบแถบที่อยู่ของ Chrome
แต่เมื่อฉันพยายามทำสิ่งที่คล้ายกันสำหรับรูปแบบ URL อื่นสำหรับ Apache Superset เช่นต่อไปนี้:
ตำแหน่ง /แดชบอร์ด/รายการ/ {
เขียนใหม่ ^/dashboard/list/(.*)$ /dashboard/list/$1?standalone=1 break;
proxy_pass http://127.0.0.1:8087;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
และฉันขอ http://192.168.239.40:8088/dashboard/list/
ด้วย Chrome ฉันเห็นแถบที่อยู่แทนที่ด้วย http://192.168.239.40:8088/dashboard/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc&viewMode=table
แต่ฉันไม่เห็นอะไรเลย &สแตนด์อโลน=1
ต่อท้าย
ฉันยังตรวจสอบบันทึกของ Superset เพื่อดูว่ามันทำหน้าที่อะไรหลังจากที่ฉันขอ http://192.168.239.40:8088/dashboard/list/
และฉันเห็นว่า ?สแตนด์อโลน=1
ถูกต่อท้ายจริง!
10 ก.พ. 14:09:19 หลามเซิร์ฟเวอร์แดชบอร์ด[34169]: 2022-02-10 14:09:19,482:INFO:werkzeug:127.0.0.1 - - [10/ก.พ./2022 14:09:19] "รับ / แดชบอร์ด/รายการ/?สแตนด์อโลน=1 HTTP/1.0" 200 -
10 ก.พ. 14:09:20 หลามเซิร์ฟเวอร์แดชบอร์ด[34169]: 2022-02-10 14:09:20,729:INFO:werkzeug:127.0.0.1 - - [10/ก.พ./2022 14:09:20] "GET / api/v1/dashboard/_info?q=(keys:!(สิทธิ์)) HTTP/1.0" 200 -
10 ก.พ. 14:09:20 หลามเซิร์ฟเวอร์แดชบอร์ด[34169]: 2022-02-10 14:09:20,771:INFO:werkzeug:127.0.0.1 - - [10/ก.พ./2022 14:09:20] "GET / api/v1/dashboard/?q=(order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:25) HTTP/1.0" 200 -
ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น?
ที่สมบูรณ์ /etc/nginx/conf.d/superset.conf
มีดังนี้
เซิร์ฟเวอร์ {
ฟัง 8088;
server_name 192.168.239.40;
ที่ตั้ง / {
proxy_pass http://127.0.0.1:8087;
}
ที่ตั้ง /superset/สำรวจ/ {
ถ้า ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
เขียนใหม่ ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 break;
}
proxy_pass http://127.0.0.1:8087;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
ตำแหน่ง /แดชบอร์ด/รายการ/ {
เขียนใหม่ ^/dashboard/list/(.*)$ /dashboard/list/$1?standalone=1 break;
proxy_pass http://127.0.0.1:8087;
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# จำเป็นเนื่องจาก superset มี URL เส้นทางฐานที่ฮาร์ดโค้ด
ตำแหน่ง / คงที่ / {
proxy_pass http://127.0.0.1:8087/static/;
}
# เพื่อแสดงแดชบอร์ดเฉพาะโดยใช้ URL ที่กำหนดเอง
# ตัวอย่างด้านล่างจะทำให้แดชบอร์ด 2 พร้อมใช้งานในโหมดสแตนด์อโลน
# บน $host/dashboards/my-dashboard
ตำแหน่ง /แดชบอร์ด/แดชบอร์ดของฉัน {
proxy_pass http://127.0.0.1:8087/superset/dashboard/2/?standalone=true;
}
}