我的应用程序有一个使用 Spring Boot 构建的后端,以及一个使用 Angular 构建并由 nginx 提供服务的前端 Web 应用程序。Nginx 配置为反向代理对后端 /api/ 的请求:
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://back:8080;
}
如果ngin x在默认端口(80)上运行,我可以通过超文本传输协议://myserver/访问我的应用程序,没有问题。XHR调用超文本传输协议://myserver/api/一些/REST/资源可以完美工作。
如果我将nginx改为监听其他端口(随机:9043),那么所有XHR调用都会失败,并出现错误“无效的CORS请求”。这是出乎意料的,因为只有我的前端应用程序在调用API,由于反向代理,这个API与javascript文件在同一个主机上提供。
为了使它起作用,我需要将其添加到我的 Spring 应用程序中:
@Configuration
public class CorsConfig {
@Value("${url.base:''}")
private String urlBase;
@Value("${cors.allowed.origins:[]}")
private String[] allowedOrigins;
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping(urlBase + "/**")
.allowedOrigins(allowedOrigins)
.allowedMethods("*");
}
};
}
}
然后在我的配置中设置cors.allowed.origin
s为超文本传输协议://myserver: 9043/
。
这是可行的,但它是不切实际的,如果我要:
是否有通过执行以下任一操作来解决此问题的解决方案:
编辑:更多细节和示例:
这些服务是有记录的:
只有当前端在端口80上暴露于外部世界时,它才有效。。。
在反向请求中添加两个超文本传输协议头:
x-转发-原型
X 转发端口
标明始发协议和端口(符合始发要求)。
查看更多:https://moi.vonos.net/java/spring-forward/
我需要创建一个将请求从端口a代理到端口B的应用程序。例如,如果用户在端口3000上连接,他将被路由到端口3001,因此“原始”应用程序将在端口3001上运行,但在客户机(浏览器)中,用户将把端口3000。不是重定向... http://example.com:3000/foo/bar 将创建一个监听端口3001的新服务器,所有的调用实际上都是对端口3000的调用,该端口与新服务器和新端口一起运行。
我在服务器上安装了keycloak standanlone,并尝试通过Nginx在反向代理后面使用它。Keycloak绑定到127.0.0.1
我当前正在尝试用eureka设置服务发现,但客户端注册的端口错误。每个Eureka客户机都在自己的nginx反向代理后面的不同服务器上,并且可以通过端口443上的https从外部访问,但是java Eureka客户机配置在不同的端口上。我还尝试在nginx公开的相同端口上配置它们,但nginx服务器进行了无限重定向,并在一些尝试后以错误“无效重定向”停止。eureka客户端在不同的端口上注册,使用
Nginx 最强大的地方是在于其 HTTP 请求的反向代理,也即常说的七层反向代理。在这一层代理中,通过 Nginx 框架提供的相关配置,我们能在该层将发送过来的 http 协议转换成各种其他的协议比如 fastcgi 协议、uwsgi协议、grpc、http(高版本协议)、websocket协议等。这样使用 Nginx 框架,我们可以支持多种应用服务(java web、python web等)的
我正试图将一个war文件(Oracle的APEX Listener)部署到部署在RHEL服务器上的Glassfish3.1.2.2服务器上(我也在家里的Ubuntu服务器上看到了同样的问题)。 我使用以下命令创建域: $GLASSFISH_HOME/bin/asadmin创建域--portbase 8100 myDomain [我还在同一台GlassFish服务器上创建多个域(一个GF实例有多个域
我在谷歌上冲浪,没有找到任何具体的答案或例子,所以再次尝试我的运气在这里(经常是幸运的)。 问题所在 > 我在apache反向代理后面运行了一个spring boot RESTful服务。此RESTful服务只运行HTTP。假设它运行在本地IP172.S端口8080上。 我还配置了一个apache反向代理。假设它运行在本地IP172.a和公共IP55.a上。该代理响应两个端口80,但所有HTTP通