Rails показывает IP как 127.0.0.1 при доступе из частного сетевого адаптера, но Nginx показывает правильный IP. Публичный IP получает штраф

Мы запускаем приложение Rails на Unicorn + Nginx. На сервере есть две сетевые карты, которые мы используем.eth0 обрабатывает запросы на публичный интернет, иeth2 обрабатывает запросы из нашей частной сети.

Когда приходит запросeth0, журналы nginx показывают публичный IP, а журналы Rails также показывают этот IP. Тем не менее, когда запрос приходитeth2журналы nginx показывают частный IP-адрес правильно (например,192.168.5.134), но логи Rails показывают.127.0.0.1

Так что похоже на публичные запросы наeth0 получить ихX-Forwarded-For заголовок установлен правильно, но это нене происходит для запросов на.eth2

Наш конфиг nginx довольно прост:

upstream example.com {
  server unix://var/www/example.com/shared/sockets/unicorn.socket fail_timeout=0;
}

...

server {
  listen 443 ssl;
  ...

  location @example.com  {
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real_IP $remote_Addr;
    proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if ($host ~* "^(.+)\.example.com$") {
      set $subdomain $1;
    }

    proxy_pass http://example.com;
  }

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос