我正在尝试在Cloudflare上设置CNAME以指向Amazon API Gateway端点.CNAME用于引用我的某个子域名时使用.网关反过来指向DigitalOcean上的服务器的IP.我是亚马逊网络服务的新手,如果有人能够概述DNS,亚马逊网关和Cloudfront的正确配置(我认为需要将网关暴露给亚马逊外部的DNS服务器),我将不胜感激.任何帮助将非常感激.
UPDATE
我已经在这方面做了一段时间而没有取得多大进展.有没有人知道这是否是一种可行的方法或者如何做到这一点?
UPDATE2
我以为我需要将CNAME记录添加到cloudFlare并且刚刚进入重定向循环,观察到:
curl -L -i -v https://sub.mydomain.com/
Run Code Online (Sandbox Code Playgroud) 我有一个网站mydomain.com,其中DNS通过Cloudflare配置.我正在设置可通过api.mydomain.com访问的API
我使用的服务器托管在Digital Ocean上,但我想使用Amazon API网关接口的一些功能(我稍后会将所有服务器迁移到亚马逊).API服务器与网站相同(稍后将再分开,但是现在有效的A记录是相同的数字海洋节点).API网关接口已配置,我可以通过提供的端点someamazonendpointurl.com/stage轻松访问它
在亚马逊上,我创建了一个源为api.mydomain.com的Cloudflare发行版.它具有一些基本的HTTP到HTTPS行为以及查询字符串参数.然后,我在Cloudflare上设置CNAME记录以指向端点URL.当我尝试访问api.mydomain.com但我收到Chrome错误:
ERR_TOO_MANY_REDIRECTS
Run Code Online (Sandbox Code Playgroud)
有没有人知道我可能错误配置了什么.我意识到这是一个奇怪的设置,但是当我们将服务器迁移到亚马逊时,它是一个止损.
UPDATE
我注意到我在apfront.mydomain.com的cloudfront中有一条CNAME记录.我现在删除了这个,但得到:
ERROR
The request could not be satisfied.
Bad request.
Generated by cloudfront (CloudFront)
Request ID: <id>
Run Code Online (Sandbox Code Playgroud) 我目前有一个用Django编写的后端和一个chrome扩展,它向该后端发出其余请求。后端设置用于用户注册和通过网页登录。
我想对chrome扩展程序中的用户进行身份验证,以便他们可以登录一次,并且chrome扩展程序将在不同页面上的多次加载中维护会话。然后,应该对扩展中的所有其余请求进行身份验证,使其能够分辨出哪个用户正在处理程序中针对该请求发出给定请求。
我对这种类型的客户端-服务器身份验证非常不熟悉,经过一番环顾后,看起来好像是oauth或简单的https标头身份验证可能是解决之道。我不确定oauth是什么,因为这似乎有些矫kill过正(而且我通常对此并不熟悉),但是我不确定如何在扩展的使用过程中保持https身份验证。有人可以从Django后端中勾勒出必要的元素,以使用javascript进行登录和随后的其余请求吗?
javascript django web-services django-authentication google-chrome-extension
我正在尝试配置Django应用程序以与cloudflare提供的ssl一起使用。我的配置与此答案大致相同,并且遵循相同的解决方案。
这已经杀死了我好几个星期(请帮忙!),因为我不是网络/安全人员,只需要一种解决方案就可以避免我费劲,但可以确保站点安全。
我目前遇到CSRF问题,其中https://www.domain.co.uk与https://domain.co.uk不匹配
Settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
USE_X_FORWARDED_HOST = True
Run Code Online (Sandbox Code Playgroud)
nginx:
server {
listen 80 default_server;
server_name domain.co.uk www.domain.co.uk;
access_log off;
location /static/ {
alias /static/;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
proxy_set_header X-Scheme $scheme;
proxy_set_header …Run Code Online (Sandbox Code Playgroud)