Articles of amazon web services

AWS ELB无法解释的延迟

我们最近遇到了无法解释的延迟问题,因为我们使用AWS设置从ELB延迟度量标准反馈。 我们的设置包括3个EC2 c1.medium机器(每个运行一个NGINX,与机器上的uWSGI处理器对话),在ELB后面。 现在,我们的stream量在早晚都有峰值,但是这并不能解释我们所看到的情况,即在延迟10秒钟的高峰期,stream量达到了峰值。 我们的NGINX日志和uWSGI统计数据显示,我们不排队任何请求,响应时间在500毫秒以下。 一些configuration细节: ELB监听端口8443并转移到8080 NGINX在每个EC2上有以下configuration: worker_processes 2; pid /var/run/nginx.pid; events { worker_connections 4000; multi_accept on; use epoll; } http { server { reset_timedout_connection on; access_log off; listen 8080; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } } } 我想知道是否有人经历过类似的事情,或者可以提供解释。 谢谢..

使用独angular兽将Rails应用程序部署到Opsworks时出错

应用程序已成功部署,但不起作用! /var/log/nginx/error.log中的错误文件显示以下错误: 2014/07/27 13:01:33 [crit] 13633#0: *531 connect() to unix:/srv/www/webcam_app/shared/sockets/unicorn.sock failed (2: No such file or directory) while connecting to upstream, client: 172.31.21.187, server: webcam_app, request: "GET / HTTP/1.1", upstream: "http://unix:/srv/www/webcam_app/shared/sockets/unicorn.sock:/", host: "172.31.0.13" 我检查并发现/srv/www/webcam_app/shared/sockets中不存在/srv/www/webcam_app/shared/sockets 。 我无法弄清楚为什么会发生这种情况。 我需要为独angular兽添加任何gem吗?它是否与食谱有关?

http 403错误+“readv()失败(104:连接重置由同级)而读取上游”

前言:我使用s3boto作为默认存储后端在amazon ec2实例上运行nginx + gunicorn + django。 我是免费的。 ec2安全组允许:http,ssh和https。 我试图发送包含单个元素的多部分/表单数据请求:照片。 试图上传照片时,iPhone(来自请求的来源)挂起。 照片大小约为9.5 MB。 当我检查nginx-access.logs时: “POST / myUrl / HTTP / 1.1”400 5“ – ”“…. 当我检查nginx-error.logs时: [error] 5562#0: *1 readv() failed (104: Connection reset by peer) while reading upstream, client: my.ip.addr.iphone, server: default, request: "POST /myUrl/ HTTP/1.1", upstream: "http://127.0.0.1:8000/myUrl/", host: "ec2-my-server-ip-addr.the-location-2.compute.amazonaws.com" [info] 5562#0: *1 client my.ip.addr.iphone closed […]

AWS ELB自定义标题Nginx

自定义HTTP头被删除的ELB的一个奇怪的行为。 我正在使用Nginx作为服务器,具有以下虚拟主机configuration: server { listen 80; server_name example.com; location / { index index.html index.htm; add_header Custom Test; } } 通过使用IP地址直接访问服务器,可以find标题“Custom:Test”。 但是一旦这个服务器驻留在ELB后面。 自定义标题不再显示。 我可以知道这是否与我的设置有关吗?

在Amazon S3上托pipe的网站速度非常缓慢

我有一个应用程序是一个静态的网站build设者。用户可以创build他们的网站,并将其发布到他们的自定义域。我使用Amazon S3来托pipe这些网站和代理服务器nginx将请求路由到S3存储区托pipe站点。 我正面临一个加载时间的问题。由于S3具体是不与任何地区和内容完全是HTML关联不应该有任何延迟。我有一些CSS和JS文件不是太重。 什么可以是更好的性能优化技术? 例如:将设置标题? 或利用caching帮助? 我添加了pingdom分析的图像供参考。 此外,我不能使用云端,因为当用户更新图像时,边缘位置在新图像被reflection之前有几分钟的延迟。它不是即时更新,因此限制了我的使用。 任何改善的build议?

了解服务器体系结构:使用Nginx反向代理或Apache服务器从AWS S3提供内容

这个问题的目的是在devise服务器端体系结构时理解策略。 使用案例:我想为应用程序构build一个http服务器,允许用户上传和下载多媒体内容(图像,video等)。大量的并发用户(比如约50k)预计会上传/下载内容。 所有内容将存储在AWS S3存储桶中。 有关S3存储桶的信息,即存储桶名称/authentication标题应该由用户屏蔽。 由于S3存储桶有多个访问控制选项( AWS-ACL ),因此最好不要让所有用户(authentication用户和匿名用户)都可用。 我不想在公共领域公开内容。 查询 由于我想从用户屏蔽AWS S3,我将需要使用Web服务器或反向代理。 我已经通过比较Apache Vs Nginx的多个资源。 由于服务器需要将S3中的静态内容传递给大量的并发用户,所以Nginx似乎是一个更好的select。 不是吗? 是否将访问控制级别设置为S3存储桶给ALL_USERS(对于通过身份validation的用户和匿名用户)是否会损害数据隐私? 如果我使用反向代理,用户无法确定S3存储桶地址。 数据是否安全和私密? 但是,如果S3存储桶只对authentication的用户可用,nginx会反向代理工作吗? 我已经通过Nginx反向代理S3 。 为了让Nginx成为一个反向代理,需要准备一个预先签名的URL 。 预先签名的URL的到期时间又是一个棘手的决定。 为预先签名的url设置一个巨大的失效时间是否合理? 它会影响数据的安全性或隐私性(类似于对ALL_USERS的s3访问控制)? 如果是的话,有没有办法通过nginx将代理请求dynamic生成预先签名的url(短到期时间)? 任何信息和资源巩固我的理解将是非常有益的。

Rails 4生产资产在AWS ELB和nginx上返回502

因此,我在两个AWS EC2实例上有一个Rails生产应用程序,这些实例正在通过AWS弹性负载平衡器进行负载平衡。 EC2实例通过nginx和乘客服务于Rails应用程序。 我的DNS是指向负载平衡器,一切工作正常,除了我的CSS / JS /资产没有被服务。 我把serve_static_files设置为false让nginx处理它,而且我已经用RAILS_ENV=production rake assets:precompile编译了我的RAILS_ENV=production rake assets:precompile 。 当我检查铬上的资产,它说有一个502 Gateway Error 。 如果我试图用我的networking浏览器直接击中资产,我什么也看不到,仍然是502. 我检查了我的nginx错误日志,并没有502错误显示。 我检查了我的nginx访问日志: [IP地址编辑] – – [19 / Nov / 2015:06:04:49 +0000]“GET /assets/application-2386fede65ec2aa6a381b4e3215b6d7278e40c40a9bd5e1c190d0e1d98bafd1d.css HTTP / 1.1”200 12717“ http://admin.somedomain.com/login “Mozilla / 5.0(Macintosh; Intel Mac OS X 10_11_1)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 46.0.2490.86 Safari / 537.36” 它看起来很好。 我检查了我的Rails日志,它没有任何资产或502相关。 我有一个单独的DNSlogging实例,直接指向IP地址,而不是AWS ELB,它告诉我这与负载平衡器试图将资产返还给我的方式有关。 任何人有任何想法?

Rails应用程序迁移到AWS Elastic Beanstalk :: Bad Gateway(502)

所以我从Heroku迁移到AWS Elastic Beanstalk并testing了水域。 我正在关注这个文档: AWS Docs ::将Rails应用程序部署到AWS 但是,在下面的文档后,我不断收到一个坏网关502(错误)。 这是我的应用程序的规格: Rails 4.1.8 Ruby 2.1.7 服务器彪马 所以我检查了我的/log/nginx/error.log ,这里是我看到的: 2015/11/24 06:44:12 [crit] 2689#0:* 4719 connect()连接到unix:///var/run/puma/my_app.sock失败(2:没有这样的文件或目录)上游,客户端:172.31.13.129,服务器:_,请求:“G ET / HTTP / 1.1”,上游:“ http:// unix:///var/run/puma/my_app.sock:/ ”,主机: “my-app-env-mympay5afd.elasticbeanstalk.com” 从这个AWS论坛线程看来,Puma似乎没有正确启动。 所以我看过的三个日志文件是: /var/log/eb-activity.log /var/log/eb-commandprocessor.log /var/log/eb-version-deployment.log 除了我修正的“secret_key_base”错误(我使用了eb setenv SECRET_KEY_BASE=[some_special_key]命令)之外,它们都没有显示任何错误。 有一点可以暗示问题的根源是/var/log/nginx/rotated/error.log1448330461.gz有以下内容 2015/11/24 01:06:55 [警告] 2680#0:在/etc/nginx/nginx.conf:39中复制MIMEtypes“text / html”2015/11/24 01:06:55 [warn] 2680 #0:在0.0.0.0:80上冲突的服务器名称“localhost”,被忽略 但他们似乎是警告而不是严厉的阻止者。 还有其他的文件我应该看看吗? 作为另一个参考点,我已经看过这个SO Post ,这似乎暗示我需要启用SSL才能使所有这些工作。 […]

部署在Elastic Beanstalk Java环境上的Spring Boot应用程序返回502

我试图使用AWS的Javaconfiguration(而不是它们的Tomcatconfiguration)在AWS Elastic Beanstalk上部署一个非常简单的Spring Boot应用程序,但是我一直在用以下日志得到一个502错误: 2016/06/10 02:00:14 [error] 4921#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 38.94.153.178, server: , request: "GET /test HTTP/1.1", upstream: "http://127.0.0.1:5000/test", host: "my-single-instance-java-app.us-east-1.elasticbeanstalk.com" 我已经尝试通过Spring的application.properties设置我的端口到日志似乎想要的(5000,使用server.port=5000 ),并validation我的应用程序在localhost上的该端口上成功运行。 这个问题是非常相似的,除了我部署一个JAR而不是一个WAR。 似乎有什么我错过configurationNginx,我不知道如何进行。 这是我的Spring应用程序: @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } @RestController public static class MainController { […]

在Elastic Beanstalk上公开POST端点

我有一个Chrome扩展需要发送数据到一个单独的应用程序,我已经通过POST请求在Elastic Beanstalk上运行。 POST端点本身通过http工作正常,使用cURL确认。 但是,由于我从非原始域发布JSON数据,AJAX POST请求通过https执行。 这导致POST请求超时,从Chrome扩展和cURL。 我已经做了一些关于如何更改Elastic Beanstalk上的nginx服务器上的CORS设置的研究,但是我并不知道自己在做什么,并且有时候会抓住吸pipe。 如何在ELB / nginx上启用CORS?