Я очень новичок в настройке nginx. Мое приложение API, работающее в экземпляре EC2, которое автоматически создается моей средой AWS Elastic Beanstalk.
Приложение использует Nginx, а экземпляр находится за балансировщиком нагрузки ELB (классический). Домен Route 53 направляет трафик на ELB.
Я отправляю пакет от Postman или Packet Sender в этот домен, но никогда не могу получить ответ.
После проверки журнала ошибок nginx вы обнаружите, что IP-адрес клиента отображается как 10.0.2.63
, но не IP-адрес моего ПК. Мой настоящий IP-адрес 149,15x.1xx.2xx
. Наверное 10.0.2.63
IP-адрес VPC. Ниже приведен журнал ошибок nginx.
при чтении протокола PROXY, клиент: 10.0.2.63, сервер: 0.0.0.0:80
Насколько я понимаю, поскольку IP-адрес клиента является IP-адресом VPC, экземпляр EC2 не может отправить ответ на реальный IP-адрес клиента (IP-адрес моего ПК), поэтому Postmand или Packet Sender получает пустой ответ.
Я правильно понимаю? Как я могу позволить экземпляру EC2 получить реальный IP-адрес клиента? Как показано ниже:
при чтении протокола PROXY, клиент: 149.15x.1xx.2xx, сервер: 0.0.0.0:80
Я не знаю, что это проблема с настройкой AWS ELB или настройкой nginx.
Конфигурация nginx в моем экземпляре EC2:
файлы:
/etc/nginx/conf.d/proxy.conf:
содержание: |
client_max_body_size 500M;
server_names_hash_bucket_size 128;
восходящий сервер {
сервер unix:///var/run/puma/my_app.sock;
}
сервер {
слушать 80 proxy_protocol;
журнал_доступа /var/log/nginx/access.log;
журнал_ошибок /var/log/nginx/error.log;
large_client_header_buffers 8 32 КБ;
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
место расположения / {
прокси_http_версия 1.1;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_set_header Хост $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_buffers 8 32k;
proxy_buffer_size 64 КБ;
прокси_пасс http://бэкэнд;
прокси_перенаправление выключено;
# Включает поддержку WebSocket
расположение /v1/кабель {
прокси_пасс http://бэкэнд;
прокси_http_версия 1.1;
proxy_set_header Обновить "websocket";
proxy_set_header Соединение "Обновление";
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
}
}
}