Tôi rất mới với cài đặt nginx. Ứng dụng API của tôi chạy trong phiên bản EC2 do môi trường AWS Elastic Beanstalk của tôi tự động tạo.
Ứng dụng sử dụng Nginx và phiên bản nằm sau bộ cân bằng tải ELB (cổ điển). Định tuyến tên miền 53 định tuyến lưu lượng đến ELB.
Tôi gửi gói từ Người đưa thư hoặc Người gửi gói đến miền đó, nhưng không bao giờ nhận được phản hồi.
Sau khi kiểm tra nhật ký lỗi nginx, thấy rằng IP máy khách được hiển thị dưới dạng 10.0.2.63
, chứ không phải địa chỉ IP của PC của tôi. Địa chỉ IP thực của tôi 149.15x.1xx.2xx
. tôi đoán 10.0.2.63
là địa chỉ IP VPC. Dưới đây là nhật ký lỗi nginx.
trong khi đọc giao thức PROXY, máy khách: 10.0.2.63, máy chủ: 0.0.0.0:80
Theo hiểu biết của tôi, vì IP máy khách là địa chỉ IP VPC, phiên bản EC2 không thể gửi trả lời đến địa chỉ IP máy khách thực (địa chỉ IP PC của tôi), do đó, Postmand hoặc Người gửi gói nhận được phản hồi trống.
Tôi có hiểu đúng không? Làm cách nào tôi có thể để phiên bản EC2 nhận địa chỉ IP thực của máy khách? Giống như dưới đây:
trong khi đọc giao thức PROXY, máy khách: 149.15x.1xx.2xx, máy chủ: 0.0.0.0:80
Tôi không biết đó là sự cố với cài đặt AWS ELB hoặc cài đặt nginx.
Cấu hình nginx trong phiên bản EC2 của tôi là:
các tập tin:
/etc/nginx/conf.d/proxy.conf:
nội dung: |
client_max_body_size 500M;
server_names_hash_bucket_size 128;
phụ trợ ngược dòng {
máy chủ unix:///var/run/puma/my_app.sock;
}
người phục vụ {
nghe 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_từ 10.0.0.0/8;
real_ip_header X-Forwarded-For;
địa điểm / {
proxy_http_version 1.1;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Chuyển tiếp-Cho $proxy_protocol_addr;
proxy_set_header Máy chủ $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_buffers 8 32k;
proxy_buffer_size 64k;
proxy_pass http://phụ trợ;
proxy_redirect tắt;
# Cho phép hỗ trợ WebSocket
vị trí /v1/cáp {
proxy_pass http://phụ trợ;
proxy_http_version 1.1;
proxy_set_header Nâng cấp "websocket";
proxy_set_header Kết nối "Nâng cấp";
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Chuyển tiếp-Cho $proxy_protocol_addr;
}
}
}