将 ip 从 nginx 代理到 jetty/gwt

将 ip 从 nginx 代理到 jetty/gwt

早上好!

我在 jetty 6 前面设置了 nginx,它正在运行 GWT 应用程序。我正在尝试转发 ip 地址,我在互联网上找到的所有答案都告诉我这样做:

proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这工作得很好,只是 jetty 的日志不显示 X-Real-IP,而是显示 127.0.0.1。此外,jetty/GWT 的 IP 为 127.0.0.1 getThreadLocalRequest().getRemoteAddr(),尽管我可以访问 X-Real-IP 来获取正确的远程 IP。

有什么想法可以获取码头日志的正确远程 IP 并使其getThreadLocalRequest().getRemoteAddr()正常工作?

谢谢!

答案1

您只需在 /etc/jetty.xml 中将转发配置添加到连接器即可。示例:

<Call name="addConnector">
    <Arg>
        <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
           <Set name="forwarded">true</Set>

这应该可行。

相关内容