【问题标题】:Nginx - how to configure IP address? (returns only 127.0.0.1)Nginx - 如何配置IP地址? (仅返回 127.0.0.1)
【发布时间】:2013-10-20 04:25:34
【问题描述】:

我在 Amazon EC2 上有一个使用 nginx 和 unicorn 的 Rails 应用程序。

当我访问 request.remote_iprequest.env['REMOTE_ADDR'] 时,输出始终为 127.0.0.1。 p>

这是我的nginx.conf

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    upstream example.com {
      server 127.0.0.1:8080;
    }

    server{
      listen 80;

      server_name example.com _;
      root /home/deployer/example/public;

      location / {
        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_set_header Host $http_host;

        if (!-f $request_filename) {
          proxy_pass http://example.com;
          break;
        }
        if (-f $document_root/system/maintenance.html) {
          return 503;
        }
      }
   }
}

我尝试添加这些行:

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

但不幸的是,结果还是一样 - 127.0.0.1

我做错了什么?有没有其他BUG?

【问题讨论】:

  • 这里也一样!使用 Tornado Web 服务器作为上游。任何帮助将不胜感激!

标签: ruby-on-rails nginx amazon-ec2 ip unicorn


【解决方案1】:

试试这个:

proxy_set_header CLIENT_IP $remote_addr;

【讨论】:

  • 每次更改配置时是否都重新启动服务器?
  • 应该是Client-IP,而不是CLIENT_IP
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 2013-12-27
  • 2010-09-12
  • 1970-01-01
  • 2014-09-27
相关资源
最近更新 更多