我在 Amazon ELB 负载均衡器后面有一组 Nginx 服务器。我正在使用 set_real_ip(来自HttpRealIpModule),以便我可以访问这些服务器上的原始客户端 IP 地址(用于传递到 php-fpm 并在HttpGeoIPModule 中使用)。
貌似set_real_ip_from
在nginx配置中只能接受一个IP地址。但是,关于 ELB 机器亚马逊说:
注意:因为与 LoadBalancer 关联的 IP 地址集会随着时间的推移而改变,所以永远不要使用任何特定的 IP 地址创建“A”记录。如果您想为 LoadBalancer 使用友好的 DNS 名称而不是 Elastic Load Balancing 服务生成的名称,您应该为 LoadBalancer DNS 名称创建 CNAME 记录,或使用 Amazon Route 53 创建托管区域。有关更多信息,请参阅在 Elastic Load Balancing 中使用域名
但是如果我需要输入一个 IP 地址,我就不能使用 CNAME(亚马逊的或我自己的)。这个问题有解决方案吗?
configuration nginx amazon-ec2 amazon-web-services amazon-elb
我试图找出弹性负载均衡器可以从它后面的 EC2 实例拥有的 IP 地址范围。这样我就可以正确配置 nginx 的 HttpRealIpModule 了。
我找到了一个EC2 公共 IP 地址列表,但找不到任何提及私有 IP 范围的内容。我最好的猜测是10.0.0.1/8
- 有谁知道这是否正确?
我正在针对远程 https Web 服务开发应用程序。在开发时,我需要将来自本地开发服务器(在 ubuntu 上运行 nginx)的请求代理到远程 https Web 服务器。这是相关的 nginx 配置:
server {
server_name project.dev;
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass https://remote.server.com;
proxy_set_header Host remote.server.com;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是远程 HTTPS 服务器只能接受通过 SSLv3 的连接,从以下openssl
调用可以看出。
不工作:
$ openssl s_client -connect remote.server.com:443
CONNECTED(00000003)
139849073899168:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 226 bytes
---
New, (NONE), …
Run Code Online (Sandbox Code Playgroud)