我有星火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