我使用自定义域在 AWS ELB 上托管了一个基于 Java 的小型 JAR 打包 web 应用程序。我上传了一个 ZIP 文件,如:
myapp.zip
* myapp.jar
Run Code Online (Sandbox Code Playgroud)
我已经配置使用AWS CM证书,我能够同时通过访问我的应用程序http://www.example.com以及https://www.example.com。
现在我需要始终强制使用HTTPS 。我完全不知道该怎么做。
我看到了许多答案,例如“配置您的 nginx”:
/sf/ask/1722253431/ https://aws.amazon.com/de/premiumsupport/knowledge-center/redirect-http-https-elb / http://www.emind.co/how-to/how-to-force-https-behind-aws-elb/
其他答案也朝着相同的方向发展。
虽然我可以理解重写规则的想法,例如:
if ($http_x_forwarded_proto = 'http') {
return 301 https://www.example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
我缺少的是如何实际将其添加到 AWS ELB nginx。
我最后尝试的是添加.ebextensions\nginx\conf.d\my.conf到我的 ZIP 档案中:
myapp.zip
* myapp.jar
* .ebextensions
* nginx
* conf.d
* my.conf
Run Code Online (Sandbox Code Playgroud)
内容:
if ($http_x_forwarded_proto = 'http') {
return 301 https://www.example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
2016/12/24 12:08:27 [emerg] 22709#0: …Run Code Online (Sandbox Code Playgroud)