如何更改AWS Elastic Beanstalk以转发请求的原始IP地址?

时间:2016-10-07 07:22:00

标签: amazon-web-services nginx elastic-beanstalk

我对所有这些服务器/ ngInx的东西都很陌生,所以我遇到了一个问题,即填写请求的正确IP地址。截至目前,所有请求都来自IP地址127.0.0.1(在AWS内部)。但是,我需要能够验证请求的原始IP地址是什么。

正如我读过here,我需要在ngInx中指定以下选项:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

但是,我不在AWS上使用nginx的自定义配置。有没有办法只将这两行添加到aws的默认配置nginx上?

1 个答案:

答案 0 :(得分:1)

我不是nginx的专家,但你可以使用ebextensions(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)来解决这个问题。

基本上,您首先需要将此新配置放在nginx配置文件中,如下所示:

    files:
      "/etc/nginx/conf.d/proxy.conf" :
        mode: "000755"
        owner: root
        group: root
        content: |
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

然后你还需要使用如下所示的container_commands重新加载nginx:

container_commands:
  01_reload_nginx:
    command: "service nginx reload"

希望它有所帮助!