我试图强制使用NGINX的http端点上的https,如下所示: server { location / { root /data/www; if ($http_x_forwarded_proto != 'https') { rewrite ^ https://$host$request_uri? permanent; } } location /images/ { root /data; } } 请注意,所有来自nginx的im服务都是静态文件(一个HTML文件,JavaScript文件和一个coupl 我的ELB健康检查打到HTTP:80 /。 所以我认为这是发生,是ELB试图ping我的服务器,打重写,并得到返回301? 我已经看到了许多ruby和node的答案,但这只是静态资产。 帮帮我!
用户请求: https://www.example.com/test : https://www.example.com/test HTTPS requests –> AWS ELB HTTPS Listener –> Apache HTTP 获取http://www.example.com/test Apache 由于DirectorySlash默认为On ,Apache将其redirect到http://www.example.com/test/ 。 用户结束HTTP请求: http://www.example.com/test/ : http://www.example.com/test/ AWS提供了HEAD来检测原始请求协议: %{HTTP:X-Forwarded-Proto} ,但是如何告诉Apache mod_dir DirectorySlash使用该头? 请在这种情况下通知您的解决scheme或解决方法。
我们在EC2上有一个现有的ELB。 它有一个GoDaddy颁发的通配符ssl证书。 我已经从GoDaddy下载了新的.crt和gd_bundle.crt。 在ec2我去负载平衡器,点击证书,select上传一个新的证书。 我将现有的私钥复制到私钥字段中。 将新的.crt的内容放入公共证书字段,并将gd_bundle.crt的内容放入证书链字段。 当我尝试保存它时,出现“无效的公钥证书”错误。 证书是以PEM格式(或者他们似乎是)
您将在networking上看到很多地方告诉您使用AWS ELB设置SSL的方法是在负载均衡器上设置证书,然后将端口443的stream量转发到80,以便负载均衡器和nginx之间的stream量为encryption。 对我来说,这看起来不是很安全,因为您有未encryption的数据stream经networking连接。 如果这些数据是信用卡信息呢? 我的问题: 负载平衡器和nginx之间是否存在未encryption的连接会造成安全风险? 如果对1的答案是肯定的,我将如何设置nginx以允许来自负载均衡器的安全连接? 这涉及到在每个nginx服务器上设置一个SSL证书? 如果nginxconfiguration需要与nginx不在负载均衡器后面的标准ssl设置不同,那么nginxconfiguration会是什么样子?
我们最近搬到了EC2,并开始使用亚马逊的ELB进行负载平衡。 我们使用的CloudFlare的DNS允许我们使用一个CNAME的域根。 然而,我们偶尔会有人告诉我们,我们的电子邮件是弹跳与以下错误的一些变化: [email protected] …延期:连接拒绝our-production-loadbalancer.elb.amazonaws.com。 我们正在使用谷歌应用程序的邮件,我们的MXloggingconfiguration正确,所以我不知道在什么时候邮件客户端或服务器试图解决我们的域名,并接收cnamelogging。 有谁知道为什么MXlogging会被忽略? 这是使用CNAME的结果吗? 我可以想象,如果我们在一个不接受邮件的IP地址上指出Alogging,也会发生同样的事情。
ELB设置为接受公共HTTPS(443)连接,并将其作为HTTP(80)发送到EC2实例。 EC2实例运行需要知道用户IP地址的IIS应用程序。 根据我在本网站和其他地方阅读的所有内容,ELB应该将这些信息存储在名为“X-Forwarded-For”的标题中。 无论出于何种原因,ELB似乎并没有将这个特定的头文件传递给IIS(或者IIS正在剥离它?)。 任何想法我可能做错了什么?
我目前正在研究高stream量高可用性网站的架构。 我们正在使用AWS。 目前,我们有: 路线53 – > ELB – >多个EC2实例 – > RDS多AZ。 每个EC2实例运行Varnish + Nginx和PHP FCGI。 会话和其他一些共享数据通过ElastiCache存储。 我们计划在每个EC2实例上运行Varnish和Nginx,因为这样可以减less故障点,并在负载增加时运行额外的实例。 但是,我们必须添加iptables(fail2ban)。 当然,我们获得ELB的IP而不是真正的客户端IP … 我们想到了以下解决scheme: 1)在Route 53和ELB之间添加一个EC2实例,运行iptables / firewalls(也可能是varnish?)并将所有内容转发到ELB。 2)用运行HAProxy + iptables的自定义EC2replaceELB。 3)使用mod_security并构build一些自定义的东西来dynamic地将IP列入黑名单 4)坚持目前的架构,并从我们的待办事项列表中删除iptables。 什么是一个好方法? 谢谢
我有一个从我的networking服务器,其中有一个ELB,然后在nginx层前的清漆层login问题。 为X-Forwarded-For正确设置清漆,通过logging正确的“client.ip”正常login。 然而,nginx日志正在通过请求中的整个IP列表。 默认的Grok行为似乎将客户端IP设置为列表中的最后一个。 elb和varnish服务器,这混淆了我的client.ip字段的nginx日志。 正确的客户IP应该是列表中的第一个(或者至less是前几个)。 inheritance人一个例子: 172.31.7.219 – – [28/Sep/2015:12:39:56 +1000] "GET /api/filter/14928/content?api_key=apikey&site=website HTTP/1.1" 403 101 "-" "-" "my.website.com" "1.144.97.102, 1.144.97.102, 1.144.97.102, 127.0.0.1, 172.31.26.59" 问题是我没有能够调整grok来处理这样的结果,heroku grokdebugging器似乎并没有为这个查询工作,我的grok – 但他们正在logstash即工作。 不标记grok失败。 我试图debugging的具体部分,但我还没有find一种方法来做我所需要的IP / IPORHOST,其中有一个逗号分隔的IP地址列表。 我需要能够指定应该使用哪个IP。 即。 列表中的第一个应该是client.ip而不是最后一个。 我的nginx grok是: NGINXACCESS %{IP:clientip} %{NGUSER:ident} %{NGUSER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) (?:"(?:%{URI:referrer}|-)"|%{QS:referrer})(?:;|) %{QS:agent} grok的任何想法,以涵盖该日志?
我正在尝试为我的网站设置我的SSL证书。 不过,我的网站回应与this site can't be reached在Chrome中this site can't be reached 。 在证书pipe理器中,它显示我的证书的关联资源是我的ELB。 ELB设置为HTTPS,端口443.其目标组为HTTP,端口为80.浏览http / 80时,该站点工作正常。 我想我的设置意味着用户点击HTTPS ELB,然后ELB将使用端口80来为我的网站服务。 httpstat https://www.ereverse.com输出: > curl -w <output-format> -D <tempfile> -o <tempfile> -s -S ereverse.com curl error: curl: (7) Failed to connect to www.ereverse.com port 443: Connection refused 我还应该注意到我的应用程序正在通过Dockerfile运行,它正在使用-p 80:5000进行运行,并且Dockerfile具有EXPOSE 80 443 。
AWS ELB负载均衡器可以configuration为解密HTTPSstream量,然后通过networking上的应用程序服务器传递它。 如果这是在我的公司networking内部,这将使我们的networking内的IP嗅探stream量变得很大。 在AWS中是一样的吗?