我在服务层中有一个Spring Boot Application,在UI中有纯HTML(带有Jquery)。
Spring Boot在tomcat服务器中运行,HTML部署在NGINX中。
假设我们有像http://IP:port/getallUser这样的URL,它可以检索所有用户。
现在,我不希望外界知道URL。由于某种安全原因,需要它。
从浏览器用户类型http://IP:port/user到NGINX和服务层转换/ URL转发/映射之间的某个地方,应该这样工作。
是否可能需要Java,NGINX或某些外部工具来实现此目的?
将http://IP:port/user映射到http://IP:port/getallUser
最佳答案
然后,让您的Java应用程序在8080端口上侦听,则服务器外部无法访问您的应用程序。
现在,使用Nginx,您可以映射整个Java应用程序(是的,包括getAllUSers
):
http {
...
server {
...
location /javaapp/ {
proxy_pass http://127.0.0.1:8080/;
}
为了避免访问某些路径,可以在以下情况之前重写特定规则:
location /javaapp/privateroute {
return 404;
}
您可以将该真实路线映射到其他路线:
location /javaapp/publicroute {
proxy_pass http://127.0.0.1:8080/privateroute;
}
这是一个真实的配置测试:
location /s/stesting {
return 404;
}
location /s/publicstesting {
proxy_pass http://127.0.0.1:3838/stesting;
}
location /s/ {
proxy_pass http://127.0.0.1:3838/;
}
在此,路径
/s/stesting
已被隐藏(404),并从/s/publicstesting
重定向。一个很好的起点是nginx location documentation
关于java - 不想将服务层URL暴露给外界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57088400/