Nginx Restlet如何正确构建HATEAOS链接?

Nginx Restlet如何正确构建HATEAOS链接?,nginx,reverse-proxy,restlet,hateoas,Nginx,Reverse Proxy,Restlet,Hateoas,在反向代理/负载平衡器后面构建webapp时,我需要获得请求的正确原始URL(预负载平衡器重写) 我已经使用getReference()(在ServerResource中)添加了HATEAOS意义上的自引用。然而,文档说getReference()可以由路由操作,并且目前它不包括正确的方案(http,而不是https-负载平衡器终止https) 以下是关于转发的头的NGINX配置 location /api { proxy_pass http://test-service;

在反向代理/负载平衡器后面构建webapp时,我需要获得请求的正确原始URL(预负载平衡器重写)

我已经使用getReference()(在ServerResource中)添加了HATEAOS意义上的自引用。然而,文档说getReference()可以由路由操作,并且目前它不包括正确的方案(http,而不是https-负载平衡器终止https)

以下是关于转发的头的NGINX配置

location /api {
        proxy_pass http://test-service;
        proxy_pass_header X-Host;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X_FORWARDED_PROTO $scheme;
}

反向代理配置是否不正确,或者是否应该使用getOriginalReference()方法。是否有一些文档解释了“原始”引用是如何构造的,反向代理后面使用了哪些字段。

由于潜在的安全问题,我认为必须在Restlet中明确启用对
X-Forwarded-For
头的支持

以下是将此功能作为服务器连接器级别启用的方法:

Component c = new Component();
Server server = c.getServers().add(Protocol.HTTP, 8182);
server.getContext().getParameters().add("useForwardedForHeader", "true");
c.start();
有关详细信息,请参阅此页:

完成后,相应的提示将在ClientInfo对象中提供:

List<String> forwardedAddresses
   = request.getClientInfo().getForwardedAddresses();
列出转发的地址
=request.getClientInfo().getForwardedAddresses();
有关标头和Restlet API之间的映射,请参见此页面:

希望这对你有帮助, 蒂埃里