Laravel和AWS Cloudfront
我正在研究并阅读了很多有关一个特定主题的文章,但在任何地方都找不到相关答案. 但是,我正在Laravel中的一个有趣/私人项目做一些事情,我想使用Amazon S3存储.我已经设置了所有设置,并且可以使用Laravel文件系统从应用程序上传到S3,但是我要做的就是使用CloudFront(我也设置了此设置并工作,Cloudfront是适当地提供文件)用于服务图像和文件. 现在我的问题是:如何将AWS CloudFront" URL"集成到Laravel中?我的意思是如何将CloudFront URL存储在Laravel应用程序中?如何检索文件URL(IE映像),以便可以在应用程序中显示它.我是否仅将文件路径存储在数据库中,并使用"某种特定方式"服务完整的URL,还是将完整的AWS CloudFront URL保存在数据库中? 这是如何工作的?抱歉,如果问题很愚蠢,但是我只是潜入Laravel,我在那里很新. 解决方案 将URL设置为config/filesyst
0 2023-05-28
编程技术问答社区
AWS Cloudfront + 负载平衡器,url从主域变为负载平衡器子域
我的设置如下: 浏览器上的用户类型example.com 请求转到AWS CloudFront,将HTTP重定向到HTTP,并将请求转发到AWS弹性loadBalancer(elb.example.com) LoadBalancer将请求转发到运行PHP Laravel Framework的EC2实例 EC2正常响应 用户在example.com上正确查看页面,而其他所有内容都透明了 所有这些都是我想要的,但是..... 如果用户导航到页面上的任何按钮,则浏览器上的URL将成为elb.example.com(它应该留下示例) 如果我转到查看页面源,则所有指向页面上任何按钮的链接都具有elb.example.com的基本URL(应该是example.com) 原因是因为EC2请参阅LOAD BALANCER的请求,因此假设基本URL为ELB.EXAMPLE.com并相应地生成所有链接. 如何使EC2参见基本URL作为example.com? 解
0 2023-05-26
编程技术问答社区
拒绝访问(403),在Cloudfront s3分布的有序缓存中
我正在尝试使用有序的缓存行为添加具有CloudFront的多重精素设置.这是我要实现的目标(鉴于我的baseurl是 https://example.com/app2 从另一个桶(App2)显示index.html li> 为此,我创建了一个CF S3分布,其中有两个原始(root,app2)指向两个不同的桶.在缓存行为中,我创建了有序的缓存行为,以将所有流量与路径" App2*"路由到App2 Origin. 使用此设置 AccessDenied Access Denied E1C4FA78C620F166 nwVnR036HRHWVwiQoEoJQaj9A/Mf975SUYOoiYrgX8JasQCEWRrEeNTvBM5y327gZzcfCLksCDY= 我在浏览器中的http响应标头上看到
有什么办法可以将AWS Cloudfront设置为指向静态IP地址(WP托管在GoDaddy)?
所以我在GoDaddy上有一个WordPress网站,但是DNS在Route53上,我希望仅通过HTTPS访问它. 因此,我使用ACM和使用该证书的CloudFront发行版设置了SSL证书,但是我来自GoDaddy的所有是IP地址CloudFront不允许我将原点设置为IP. 有什么方法可以完成此操作? 解决方案 组成一个新的主机名.如果您的域是example.com,请称其为origin.example.com.该名称实际上并不重要,只要目前未使用并且在您控制的域中. 在路由53指向origin.example.com的IP地址中创建A记录. 然后,在CloudFront中,将原点域名设置为origin.example.com.将原始协议策略设置为"仅HTTP".在缓存行为设置中,白名单Host标题用于转发到原点. CloudFront将使用该名称通过Route 53找到服务器的IP地址.
2 2023-05-22
编程技术问答社区
Cloudfront CORS 屏蔽字体
除字体外,所有资产都很好, 每当我去我的网站时,我都会不断收到这样的消息: 访问字体 'https://xxxxxxxxxx.cloudfront.net/assets/fontawesome-webfont.woff2' 起源' https://example.com '已被CORS策略所阻止:否 请求的"访问控制"标头 资源.因此,不允许原产 访问. 您可以看到curl命令表明没有标题. curl -H "Origin: https://example.com" -I https://xxxxxxxxx.cloudfront.net/assets/fontawesome-webfont.woff2 HTTP/1.1 200 OK Content-Length: 77160 Connection: keep-alive Status: 200 OK X-Rack-Cache: stale, valid, store Cache-Control: public, mus
2 2023-05-21
编程技术问答社区
Rails Passenger Glyphicon CORS Cloudfront NGINX问题
因此,我知道stackoverflow是针对CORS NGINX,CloudFront和Heroku的这些问题,但是由于某种原因,我无法使其工作.我一直在关注这个问题的答案: 我如何配置`如何配置.带有导轨,nginx和乘客的访问控制 - 允许 - 孔? 但是,我似乎无法弄清楚将自定义代码块放在哪里: config/nginx.conf.erb 接下来,通过查找一个 看起来如下: location @static_asset { gzip_static on; expires max; add_header Cache-Control public; add_header ETag ""; } ...and add the two Access-Control lines: to > location @static_asset { > gzip_static on; > exp
6 2023-05-20
编程技术问答社区
AWS:如何使用AWS Cognito为CloudFront和EC2实例托管的WebApp提供授权服务?
我是AWS的新手,只是使用AWS Cognito,AWS CloudFront和/或AWS API Gateway等工具探索可能的架构. 当前,我的应用已部署在EC2实例中,以下是概述: frontend:在端口80上运行的React应用程序.当用户转到后端:nodejs + express在端口3000上运行.在用户将前端加载到浏览器中后,当他与网站互动时,http请求将发送到 https://myapp.com/api/* ,该被路由到my-ec2-instance:3000; 我使用nginx/openresty作为我的WebApp的单个入口点,它可以使用AWS Cognito进行授权,然后根据路径进行反向请求: 现在,我不想在其中使用NGINX/OpenResty Service来管理EC2实例,而是要无服务器. 我计划将我的域myapp.com指向AWS CloudFront,然后CloudFront充当替换Nginx/OpenResty的功能的单
如何通过特定用户的承载令牌访问与S3 Bucket连接的AWS CloudFront(JWT Custom Auth)
我正在使用无服务器框架将无服务器堆栈部署到AWS.我的堆栈由一些Lambda功能,DynamoDB表和API网关组成. 我使用所谓的 lambda授权者.另外,我有一个自定义的独立自主授权服务,可以生成令牌. 因此,场景是用户可以从此服务请求令牌(它是Azure上托管的IdentityServer4),然后用户可以使用携带者令牌向API网关发送请求IAM角色,如果令牌是正确的.所有这些都是有效的,并且按预期工作. 这是我的serverless.ym中lambda授权器定义的示例. functions: # ================================================================= # API Gateway event handlers # ================================================================ auth:
2 2023-05-02
编程技术问答社区
用Cloudfront CDN设置PWA?
我的Web应用程序有一个服务工作者,在我添加与CloudFront CDN的集成之前,它运行良好. 我正在在客户上注册服务工作者: navigator.serviceWorker .register('https://www.my-domain-name.com/sw.js') .then(() => console.info('service worker registered.')) .catch(error => { console.log('Error registering serviceWorker: ', error) }) 我在客户端控制台日志中获取此内容: 和灯塔正在告诉我: 未检测到匹配的服务工作者.您可能需要重新加载页面, 或检查当前页面的服务工作者的范围是否存在 封闭范围并从清单启动URL. 注册服务工作者时,我尝试了多个URL,包括:
0 2023-04-26
编程技术问答社区
Grunt模块将所有静态资产上传到S3/CloudFront,替换路径,并使旧资产失效
使用grunt,nodejs和express,我应该使用什么模块: 通过查看资产目录或通过Codebase 进行解析,可以在应用程序中发现所有静态资产(前端JS,CSS,图像). 将资产上传到Amazon S3/CloudFront,用唯一的"指纹"名称 重命名每个文件 用CloudFront URL 替换代码库中每个资产的路径 无效旧CDN资产 这是我第一次使用CloudFront.我不确定上述所有操作是否可以通过咕unt来完成,还是最好作为节点/Express模块​​完成. 带有轨道,我读过它很简单,就像:: # Setup amazon CDN config.action_controller.asset_host = "xxxxxxxxxxxxx.cloudfront.net" ,我正在寻找节点堆栈的类似解决方案. 解决方案 无效的CDN资产是一个坏主意®.在CloudFront中,完成可能需要长达15分钟的时间 - 这
0 2023-04-26
编程技术问答社区
从AWS lambda@edge访问起源URL
我正在尝试使用lambda@edge在AWS Cloudfront上实现"代理". 我的设置大致是: dns: *.domain.com-> some_uuid.cloudfront.net(CloudFront Distribution) CloudFront:Some_uuid.cloudfront.net-> S3桶源 s3 bucket:网站/(包含多个网站的文件夹) lambda@edge函数:定义为Origin-Request 我的lambda@edge功能很简单: 检查网站资源是否存在于S3存储桶中. 如果这样做,请将请求URI更改为资源S3 URL. 如果没有,请将请求发送到后端服务器以渲染资源,存储在S3上并返回. 我很难获得网站的原始域.例如,如果我尝试访问" my_website.domain.com" - 在我的lambda函数中,我没有请求中的域信息. 我认为我可以作为查看器请求实现另一个lamb
0 2023-04-25
编程技术问答社区
如何在浏览器中使用CloudFront签名的cookies?
因此,我使用cloudfront有一个私有CDN(无法通过S3访问数据),该CloudFront容纳了一些用于Web应用程序的文件. 我网站上的一个页面显示了一个源源于cdn的图像. 现在,当我在服务器上生成签名的URL时,我可以将其传递给客户端并将其设置为源... easy 但是,当我尝试使用签名的cookie做同样的事情时,我会遇到两个问题: 生成了签名的cookie服务器端后,我使用 res.cookie 设置它们,但我不确定如何在客户端找到它们. 如果实际将cookie在客户端(在Angular/javaScript中)中实际获取,则如何"设置"它,以便当浏览器试图在上述HTML中抓住图像时,它允许访问? 我正在使用节点,express和cookie-parser. 我对这些东西很陌生,因此对任何帮助都表示赞赏 解决方案 您是否检查过cookie的域
6 2023-04-25
编程技术问答社区
CloudFront如何在现有分布上设置反向代理,为S3的网站提供服务
我有一个托管网站的S3存储桶,并用CloudFront交付 现在,我将分布附加到我的顶点根域,例如-www.xyz.com 因此,以前我们使用nginx在同一域上的Web服务器根部提供静态前端 - www.xyz.com,还设置了反向代理-www.xyz.com/api/xp.在同一台计算机上上游后端服务器. 现在,我想将网站移至S3,但仍在同一台计算机上运行后端API,因此我将不得不更改DNS记录并将其指向CloudFront Distribution. 但是,使用www.xyz.com/api进行后端服务的现有和先前部署和以前的运行服务将中断 因此,我想将此路径模式上的所有请求转发到http:///api,以使现有应用程序不会破裂. 有什么方法可以实现这一目标?即 - 来自云方发行的子路的转发请求 将静态前端从S3传递到外部应用程序服务器? ----更新--- --- nginx conf至重定向请求--- location /api/
修改HTML响应(不是头文件)
希望有人能帮助我或指向我正确的方向. 我被要求找出如何使Akamai(或任何其他CDN或NGINX)修改实际响应主体. 为什么? 我要使CDN更改所有" http://"请求到" https://",而不是修改用于外部资源请求的应用程序代码"//". 这是可能的吗? 有人知道吗? 解决方案 这似乎是通过多种不同的方法可能的,但这并不是说建议实际上可能是. 似乎有可能有问题(例如:如果您重写不应该被重写的东西? 这是我发现的: nginx具有替换
0 2023-04-22
编程技术问答社区
AWS-以性能为前提服务静态文件
我正在从事我的一个项目,我期望每月约500-750k独特的ping. 我很想知道是否有任何更好的方法(就延迟而言)托管静态网站是否比我的想法有任何更好的方法. 想法: EC2实例运行nginx with gzip enabled CDN的CloudFront 我主持的内容: html(总共3页) CSS svg/png图像 另外,如果我上面的想法还可以,那么您会选择哪个EC2实例?我认为一个微型实例会很好,我不知道为什么我需要额外的RAM/CPU. 编辑:或更简单的东西,例如s3 w/cloudfront? 解决方案 针对您的案件的成本效益,高可用,完全管理,安全和容忍的解决方案是 aws s3 : 创建S3桶(mybucket)并在其上启用网站静态属性. 在该存储桶上读/写的许可下,创建IAM用户. "Version": "2012-10-17", "Statement": [ {
0 2023-04-22
编程技术问答社区
如何让AWS ELB将实际的主机名转发给目标组,而不是ELB的主机名?
我们有一个Ruby/Rails网站,我们正在从Heroku迁移到AWS.原始开发人员不可用.我现在正在尝试完成迁移.我的背景在Windows/.net世界中.这个Linux/Ruby/Rails环境对我来说很陌生... 这是我设置的当前环境: 路线53 记录名称 记录类型 别名 别名路由到 foo.example.com a 是 云范围:xyz.cloudfront.net 云方面 域名 替代域名 原点域 原始协议 行为协议 xyz.cloudfront.net foo.example.com foo.us-west-2.elb.amazonaws.com http唯一 重定向http to https 云额分布: 使用AWS发行的SSL CERT 将HTTP处理为HTTPS重定向 将请求转发给ELB通过HTTP(不是HTTPS) 负载平衡器 dns名称 听众规则 向前 foo.us-west-2.elb.amazonaws
4 2023-04-22
编程技术问答社区
Next.js:在AWS CloudFront托管时,如何使链接与导出的站点一起使用?
我正在尝试通过执行我在/pages目录中有以下两页: index.tsx Pricing.tsx 然后,从路由doco 我添加了Link从索引页面上的页面,就像: Pricing 这将产生一个看起来像example.com/Pricing的链接(当您悬停在它上,单击链接时,该页面确实会更改为定价页面,而浏览器在URL栏中显示example.com/Pricing). 问题是,链接不是真实的 - 它不能直接通过URL栏为书签或导航到. 问题似乎是当我做next export时,下一步. 因此,使用网站时,如果用户试图为书签example.com/Pricing书签;加载该书签以后会失败,因为CloudFront将返回404(因为CF仅知道.html文件). 然后我尝试更改Link看起来像: Pri
28 2023-04-22
编程技术问答社区
AWS S3桶与React应用程序:它是可能的,我的React SPA是部分静态的?
我想用S3桶托管我的React前端. 当前,我的应用程序已部署在EC2实例中,以下是概述: 前端:在端口80上运行的React应用程序.当用户转到https://myapp.com时,请求将直接针对my-ec2-instance:80. 后端:在端口3000上表达JS.当用户将前端加载到浏览器中,并且当他与网站互动时,HTTP请求将发送到https://myapp.com/api/*,该请求被路由到my-ec2-instance:3000; . 我想从EC2实例中删除前端,并带有S3桶的AWS CloudFront主机,因此EC2实例仅托管后端服务. 我读过AWS CloudFront/S3存储桶只能托管静态网站. 在这种情况下,我的React前端是静态单页应用程序,还是动态的? 我可以做吗? 解决方案 您的应用程序是动态的,因为您需要Express. S3只能提供静态内容,并且不能用于托管Node.js应用程序.您仍然可以在EC2实例中从
4 2023-04-21
编程技术问答社区
用一个CloudFront分布支持HTTPS URL重定向
我有一个域formulagrid.com. 我正在使用AWS S3作为静态网站托管它.我的问题是我想将www子域重定向到裸露的域: https://www.formulagrid.com -> https://formulagrid.com http://www.formulagrid.com -> https://formulagrid.com Amazon提供的URL从S3存储桶重定向到S3存储桶,如果两个都设置为静态网站托管. 所以我要做的是设置两个水桶: formulagrid.com - 实际网站 www.formulagrid.com - 仅将其重定向到实际网站 如果您仅通过HTTP操作,则可以很好地工作,但是S3绝对不支持HTTPS. 人们可以使用HTTP连接到S3静态网站的方式是在S3存储桶前设置云额分布.但是,云方面确实提供了HTTPS,但主要存在以充当CDN. 最初,我在持有实际站点的S3存储桶的前面设置了一个单个云
4 2023-04-21
编程技术问答社区
FastAPI RedirectResponse在重定向到不同路线时得到{"消息": "Forbidden"}当重定向到一个不同的路由时
请与我无聊,以获取一个几乎不可能创建一个可再现的例子的问题. 我使用docker,无服务器并部署在AWS API网关上的API设置.讨论的所有路线均受到传递到标头的API键的保护(x-api-key). 我正在尝试使用fastapi.responses.RedirectResponse来完成从一条路线到另一条路线的简单重定向.重定向在本地工作得很好(尽管没有API-KEY),并且两条路线在部署在AWS上并直接连接时都可以正常工作,但是有些东西阻止了从一号路由(abc/item)到路由两(路线)的重定向( xyz/item)当我部署到AWS时.我不确定会有什么问题,因为CloudWatch中的日志并没有给我太多使用. 说明我的问题,说我们有abc/item看起来像这样的路线: @router.get("/abc/item") async def get_item(item_id: int, request: Request, db: Session = Depend
14 2023-04-18
编程技术问答社区