我有星火2.1.1獨立的集羣中運行Nginx的背後與代理下列相關配置:錯誤CSS位置
在spark-defaults.conf
spark.ui.reverseProxy true
spark.ui.reverseProxyUrl http://<mydomain>/spark
在nginx的站點配置
location /spark/ {
proxy_pass http://spark-master:8080/;
proxy_set_header Accept-Encoding '';
sub_filter '/static/' '/spark/static/';
sub_filter '/proxy/' '/spark/proxy/';
sub_filter_once off;
}
當我訪問應用程序的用戶界面的網頁,例如以下:
http://<my domain>/spark/proxy/app-20170831014128-0000/jobs/
他們看起來很雜亂,因爲他們被設置爲錯誤的位置及其相關的CSS和Javascript文件無法找到,比如下面的CSS文件:
http://<my domain>/spark/proxy/app-20170831014128-0000/spark/static/bootstrap.min.css
我認爲它應該被設置爲以下位置:
http://<my domain>/spark/static/bootstrap.min.css
所以此刻,我的工作圍繞它通過添加rewrite
指令上的nginx如下:
location /spark/ {
rewrite ^/spark/proxy/(.*)/spark/static/(.*) /spark/static/$2 last;
proxy_pass http://spark-master:8080/;
.
即圍繞一個快速和骯髒的工作。由於在搜索互聯網之後到目前爲止我找不到更好的解決方案,所以我懷疑可能是我的設置有問題。
沒有任何人有任何建議在哪裏看?或者這是Spark上的一個已知問題?
非常感謝您的幫助。
非常感謝eshizhan。在應用您的建議後,我不再需要'rewrite'指令。我實際上已經搜索過「APPLICATION_WEB_PROXY_BASE」或「spark.ui.proxyBase」的用法,但我找不到任何有關如何設置它的文檔。我想我試圖把它設置爲'http:///spark',但它不起作用,所以我刪除它。我只有6點聲望,所以我似乎無法投我的票,說你的答案是有用的。 –
Anto
該建議實際上會破壞其他CSS位置,例如**工人ID **網址的CSS文件。這是由於在nginx配置中刪除了'sub_filter'/ static /''/ spark/static /';'。但是當我再次添加該sub_filter時,它甚至會打破主頁面,因爲主頁面的相同CSS變成了'http:///spark/spark/static/bootstrap.min.css'(注意雙**火花* *)。我可以用'rewrite'指令來解決這個問題,比如'rewrite ^/static /(.*)/ spark/static/$ 1 last;',但是它非常難看,因爲它必須位於'location/spark /'之外,應用程序在同一個域上。 –
Anto
更新我的回答以添加一些研究。 – eshizhan