Open dwu-zingbox opened 8 years ago
Can you try this?
ProxyRequests off ProxyPreserveHost on
ProxyPass /zkui/ http://hostname:9090/ ProxyPassReverse /zkui/ http://mydomain/
Thanks responding. The difficulty is the server side routing, /zkui
. zkui think the server is at root so link sent to FE are all reference to root. Nginx won't be able to route these request to zkui. So the basic question is how to naturally run zkui at different path like localhost:9090/zkui
.
I've found solution and almost ready to do a pull request.
My final nginx confi is,
location /zkui {
proxy_pass http://localhost:9090/zkui;
}
Added configuration as
baseURL=/zkui/
Series files got modified for example Main.java
66 WebAppContext servletContextHandler = new WebAppContext();
67 String serverBaseURL;
68 if ( (serverBaseURL = System.getenv("ZKUI_BASEURL")) == null ) {
69 if ( (serverBaseURL = globalProps.getProperty("baseURL")) == null ) {
70 serverBaseURL = "/";
71 }
72 }
73 servletContextHandler.setContextPath(serverBaseURL);
74 //servletContextHandler.setResourceBase("src/main/resources/" + webFolder);
75 servletContextHandler.setResourceBase("resources/" + webFolder);
setContextPath()
would take care of server routing naturally. New logic would take baseURL
setting in the config file or from system env ZKUI_BASEURL
. Then modify all controllers to send request to relative path instead of absolute path.
Line 75 was added to fix another problem I found when building docker image. Resources weren't loaded into docker images.
I plan to add some more configuration items, like server port and zk servers to ENV before I do a pull request.
@dwu-zingbox good idea
I'm also interested in running zkui with reverse-proxy nginx. @dwu-zingbox Thank you for your work! Can you share the other neccessary modifications with me?
@michaelburn @dwu-zingbox Hi guys. what are the other changes you made in order to make this work ? i try myself but it didn't work out for me..
@michaelburn @dwu-zingbox Hi guys. what are the other changes you made in order to make this work ? i try myself but it didn't work out for me..
i do this: nginx:
location /zkui/ {
proxy_pass http://127.0.0.1:9090/;
proxy_redirect http://127.0.0.1:9090/ /zkui/;
}
index.html
<!-- src/main/resources/webapp/html/index.html -->
<head>
<meta http-equiv="refresh" content="0;url=/zkui/home"/>
<base href="/zkui/" />
</head>
then all other html remove /
in href.
<form method="post" action="/history" role="form" class="form-horizontal">
<form method="post" action="history" role="form" class="form-horizontal">
wish this may help you
I changed Main.java. Also updated the controllers. Then updated the index.html Then updated all the html files with relative paths. but still the css & js files won't load correctly.
What else do I need to change?
nginx is configured as,
But zkui will reference from /. Is there a config I can force it referencing to /zkui?