首页 > 解决方案 > 通过 AWS/Lambda/SES/API 网关为联系表配置 Nginx

问题描述

我一直在关注本教程,了解如何使用 AWS Lambda/SES/API Gateway 配置我的联系表单

https://www.freecodecamp.org/news/how-to-receive-emails-via-your-sites-contact-us-form-with-aws-ses-lambda-api-gateway/

我能够成功地使用已部署的 Lambda 代码进行测试,但他没有解释 Nginx/Webserver 配置部分。不确定这是否是正确的方法,但我尝试将联系表单 POST 到 AWS lambda 函数,但 Nginx 一直在附加我的根目录,即 /usr/share/nginx/html

这是 Nginx 日志:

[error] 29#29: *10 open() "/usr/share/nginx/html/contact/<https:/xxxxxxxxx.execute-api.us-east-1.amazonaws.com/default/SendContactEmail>" failed (2: No such file or directory), client: <ip address>, server: www.website.net, request: "POST /contact/%3Chttps://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/default/SendContactEmail%3E HTTP/2.0", host: "www.website.net", referrer: "https://www.website.net/contact/"

"POST /contact/%3Chttps://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/default/SendContactEmail%3E HTTP/2.0" 404 548 "https://www.website.net/contact/" 

我意识到问题出在 Nginx 配置中的位置标签上,但我试图找出我在这里做错了什么。

location /contact/ {
    proxy_set_header Host $proxy_host;
    proxy_ssl_server_name on;
}

当我点击提交按钮时,它应该尝试联系 AWS Lambda 函数,但它给出了 404 not found 消息,因为 Nginx 的路径错误。

标签: amazon-web-servicesnginxaws-api-gatewaynginx-reverse-proxynginx-config

解决方案


我发现了问题,端点的 javascript 代码不需要括号 <> 。一旦我删除了它,它就开始正常工作了。


推荐阅读