Sunt foarte nou cu setarea nginx. Aplicația mea API rulează într-o instanță EC2 care este creată automat de mediul meu AWS Elastic Beanstalk.
Aplicația folosește Nginx, iar instanța se află în spatele echilibrului de încărcare ELB (clasic). Domeniul rutei 53 direcționează traficul către ELB.
Trimit pachetul de la Postman sau Packet Sender la acel domeniu, dar nu pot primi niciodată răspuns.
După ce verificați jurnalul de erori nginx, găsiți că IP-ul clientului este afișat ca 10.0.2.63
, dar nu adresa IP a PC-ului meu. Adresa mea IP reală 149.15x.1xx.2xx
. Cred 10.0.2.63
este adresa IP VPC. Mai jos este jurnalul de erori nginx.
în timpul citirii protocolului PROXY, client: 10.0.2.63, server: 0.0.0.0:80
După înțelegerea mea, deoarece IP-ul clientului este adresa IP VPC, instanța EC2 nu poate trimite răspunsul la adresa IP reală a clientului (adresa IP a PC-ului meu), prin urmare, Postmand sau Packet Sender primește răspuns gol.
Am inteles corect? Cum pot lăsa instanța EC2 să primească adresa IP reală a clientului? Ca mai jos:
în timpul citirii protocolului PROXY, client: 149.15x.1xx.2xx, server: 0.0.0.0:80
Nu știu că este problema cu setarea AWS ELB sau cu setarea nginx.
Configurația nginx din instanța mea EC2 este:
fisiere:
/etc/nginx/conf.d/proxy.conf:
continut: |
client_max_body_size 500M;
server_names_hash_bucket_size 128;
backend în amonte {
server unix:///var/run/puma/my_app.sock;
}
Server {
asculta 80 proxy_protocol;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
large_client_header_buffers 8 32k;
set_real_ip_de la 10.0.0.0/8;
real_ip_header X-Forwarded-For;
Locație / {
proxy_http_versiunea 1.1;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_set_header Gazdă $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_buffers 8 32k;
dimensiunea_buffer_proxy 64k;
proxy_pass http://backend;
proxy_redirect dezactivat;
# Activează suportul WebSocket
locație /v1/cablu {
proxy_pass http://backend;
proxy_http_versiunea 1.1;
proxy_set_header Actualizați „websocket”;
proxy_set_header Conexiune „Actualizare”;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
}
}
}