NGINX 代理 ActiveMQ Artemis,插件-如何获取到客户端连接真实-IP

阿里云服务器

当使用NGINX作为代理来转发请求到ActiveMQ Artemis时,默认情况下,ActiveMQ Artemis接收到的请求IP将是NGINX的IP地址,而不是原始客户端的IP地址。为了解决这个问题,你需要在NGINX配置中设置`proxy_set_header`指令,以便将原始客户端的IP地址传递给ActiveMQ Artemis。

以下是一个基本的NGINX配置示例,用于将原始客户端的IP地址作为`X-Real-IP`和`X-Forwarded-For`头部传递给ActiveMQ Artemis:

```nginx

server {

    listen 80;

    server_name your_nginx_server_name;

    location / {

        proxy_pass http://your_activemq_artemis_server_address;

        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;

    }

}

```

在这个配置中,`proxy_pass`指令指定了ActiveMQ Artemis服务器的地址。`proxy_set_header`指令用于设置传递给ActiveMQ Artemis的HTTP头部。

`X-Real-IP`头部包含原始客户端的IP地址。

 `X-Forwarded-For`头部是一个逗号分隔的列表,其中包含从原始客户端到最终目标服务器(即ActiveMQ Artemis)的所有代理服务器的IP地址。第一个IP地址通常是原始客户端的IP地址。

 `X-Forwarded-Proto`头部包含原始请求的协议(例如,http或https)。

一旦你配置了NGINX,并重新启动了NGINX服务,ActiveMQ Artemis就应该能够接收到包含原始客户端IP地址的HTTP头部了。你可以在ActiveMQ Artemis的配置或代码中读取这些头部来获取原始客户端的IP地址。

请注意,具体的配置可能因你的环境和需求而有所不同。你可能需要根据你的具体情况调整上述示例配置。此外,确保你的ActiveMQ Artemis服务器能够处理并信任这些头部信息,以防止潜在的安全风险。