Am configurat NGINX, versiunea 1.18.0, ca proxy invers pentru instalarea mea Apache Superset 1.4.0.
Încerc să capturez câteva modele de adrese URL și rescrie ei prin adăugarea independent=1
la sfarsit.
Următoarea configurație NGINX funcționează conform așteptărilor:
locație /superset/explore/ {
dacă ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
rescrie ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 pauză;
}
proxy_pass http://127.0.0.1:8087;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
}
Pentru că atunci când vizitez (cu Chrome) o adresă URL, cum ar fi 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%22%22slice%3_A13 2C...
, vad ca este inlocuit cu plusul original &autonom=1
adăugat la adresa URL când verific bara de adrese Chrome.
Dar când încerc să fac ceva similar pentru un alt model URL pentru Apache Superset, cum ar fi următorul:
locație /tabloul de bord/listă/ {
rescrie ^/tabloul de bord/lista/(.*)$ /tabloul de bord/lista/$1?standalone=1 pauză;
proxy_pass http://127.0.0.1:8087;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
}
si cer http://192.168.239.40:8088/dashboard/list/
cu Chrome, văd bara de adrese înlocuită cu http://192.168.239.40:8088/dashboard/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc&viewMode=table
dar nu văd niciunul &autonom=1
anexat.
De asemenea, am verificat jurnalele Superset pentru a vedea ce servește după ce am solicitat http://192.168.239.40:8088/dashboard/list/
si vad asta ?autonom=1
este de fapt anexat!
10 februarie 14:09:19 python-server de bord[34169]: 2022-02-10 14:09:19,482:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:19] „GET / tablou de bord/listă/?standalone=1 HTTP/1.0" 200 -
10 februarie 14:09:20 dashboard-server python[34169]: 2022-02-10 14:09:20,729:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:20] "GET / api/v1/dashboard/_info?q=(chei:!(permisiuni)) HTTP/1.0" 200 -
10 februarie 14:09:20 dashboard-server python[34169]: 2022-02-10 14:09:20,771:INFO:werkzeug:127.0.0.1 - - [10/Feb/2022 14:09:20] "GET / api/v1/dashboard/?q=(coloana_comandă:modificată_pe_delta_humanized,direcția_comandei:desc,pagina:0,dimensiunea paginii:25) HTTP/1.0" 200 -
Aveți idei de ce se întâmplă asta?
Complet /etc/nginx/conf.d/superset.conf
este după cum urmează:
Server {
asculta 8088;
nume_server 192.168.239.40;
Locație / {
proxy_pass http://127.0.0.1:8087;
}
locație /superset/explore/ {
dacă ($args ~* "(.*?)slice_id%22%3A133(.*)$") {
rescrie ^/superset/explore/(.*)$ /superset/explore/$1?standalone=1 pauză;
}
proxy_pass http://127.0.0.1:8087;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
}
locație /tabloul de bord/listă/ {
rescrie ^/tabloul de bord/lista/(.*)$ /tabloul de bord/lista/$1?standalone=1 pauză;
proxy_pass http://127.0.0.1:8087;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
}
# necesar deoarece supersetul are URL-uri de bază codificate
locație /static/ {
proxy_pass http://127.0.0.1:8087/static/;
}
# pentru a expune un anumit tablou de bord folosind o adresă URL personalizată
# exemplul de mai jos va face tabloul de bord 2 disponibil în modul independent
# pe $host/dashboards/my-dashboard
locație /tablouri de bord/tabloul-meu de bord {
proxy_pass http://127.0.0.1:8087/superset/dashboard/2/?standalone=true;
}
}