我一直试图使用他们自己的文档中提供的示例来调用CloudFlare API v4.
这是示例的代码
curl -X PUT "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records/372e67954025e0ba6aaa6d586b9e0b59" \ -H "X-Auth-Email: user@example.com" \ -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \ -H "Content-Type: application/json" \ --data '{"id":"372e67954025e0ba6aaa6d586b9e0b59","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"023e105f4ecef8ad9ca31a8372d0c353","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'
Run Code Online (Sandbox Code Playgroud)
这也可以在更新DNS记录中找到
使用Windows cmd.exe运行此命令,我需要首先使它成为单行,所以我删除了"\"并重新格式化它(两次),确保我在过程中没有改变任何部分.
这是一行中的相同代码:
curl -X PUT "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records/372e67954025e0ba6aaa6d586b9e0b59" -H "X-Auth-Email: user@example.com" -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" -H "Content-Type: application/json" --data '{"id":"372e67954025e0ba6aaa6d586b9e0b59","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"023e105f4ecef8ad9ca31a8372d0c353","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'
Run Code Online (Sandbox Code Playgroud)
当我在cmd中运行这个单行程序时,它可以工作,但我在请求正文中得到格式错误的JSON,但是,目视检查,记事本++上的格式化以及通过JSON验证程序运行都是正面的,这个JSON(从CloudFlare文档中复制) )没有畸形.
错误信息
{"success":false,"errors":[{"code":6007,"message":"Malformed JSON in request body"}],"messages":[],"result":null}
Run Code Online (Sandbox Code Playgroud)
谷歌搜索此错误消息或错误代码没有给我任何东西,这个相同的命令适用于运行我老板的Linux的电脑.
有人可以告诉我,如果这是一个已知的错误,如果JSON真的是格式错误或者是否有其他想法?
谢谢
我试图让Cloudflare充当S3上托管文件的CDN,这样任何人都无法直接访问这些文件.例如:
S3桶: cdn.mydomain.com.s3.amazonaws.com
CDN(Cloudflare): cdn.mydomain.com
我想要的是能够访问cdn.mydomain.com/file.jpg
(Cloudflare)但不能访问cdn.mydomain.com.s3.amazonaws.com/file.jpg
(S3).
现在我在Cloudflare上配置了一个指向我的存储桶的CNAME,以及以下CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
如果我尝试通过S3或CDN访问任何文件,我将被拒绝.如果我公开一个文件(也就是被授予的每个人),我可以通过S3和CDN访问该文件.
我曾试图改变AllowedOrigin
用*.mydomain.com
,但没有运气.
所以...
我在端口8080上的服务器上运行节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够在SSL上运行.请注意以下内容......
...我以前的NGINX配置看起来像......
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
}
Run Code Online (Sandbox Code Playgroud)
......它现在看起来像......
# HTTP
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# HTTPS
server {
listen 443;
server_name test.company.com;
ssl on;
ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
ssl_verify_client on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8080/;
proxy_ssl_session_reuse off;
proxy_set_header Host …
Run Code Online (Sandbox Code Playgroud) 将视频文件上传到 Amazon S3 时,文件上传达到 100%,然后我收到响应413 Request Entity Too Large。如何解决此问题以便我可以将视频文件上传到 Amazon S3?
我使用 Nodejs、Express、Heroku、Cloudflare 和 Amazon S3。
file-upload amazon-s3 node.js cloudflare http-status-code-413
我正在阅读,但很难理解两者之间的区别。我在我的应用程序中使用 Heroku,直到现在我使用 NGINX 来提供我的内容。我将我的静态文件预压缩为 gzip 并像这样提供它们,关闭 NGINX 配置文件中的动态压缩。
现在我正在学习 Cloudflare CDN。正如我所见,它也提供静态内容。同时使用 NGINX 和 Cloudflare 有什么意义,有什么好处?
当用户访问网站时,流量如何?
可不可能是:
最终用户 -> Cloudflare DNS -> CDN -> NGINX -> Heroku
最终用户 <- Cloudflare DNS <- CDN <- NGINX <- Heroku
我目前正在尝试使用 Python 中的 Selenium 和 Requests 模块构建一个小型机器人。
但是,我想与之交互的网页在 Cloudflare 后面运行。
我的 python 脚本使用 stem 模块在 Tor 上运行。
我的流量分析基于使用 Persist Logs 的 Firefox 的“开发者选项->网络”。
如果 Cloudflare 正在检查我的 Javascript 功能,我的请求模块不应该返回 503 吗?
driver = webdriver.Firefox(firefox_profile=fp, options=fOptions)
driver.get("https://www.cloudflare.com") # usually returns code 200 without verifying the browser
session = requests.Session()
# ... applied socks5 proxy for both http and https ... #
session.headers.update({"user-agent": driver.execute_script("return navigator.userAgent;")})
page = session.get("https://www.cloudflare.com")
print(page.status_code) # return …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用我的 Puppeteer 进入 hotbit.io。但当 puppeteer 尝试进入页面时,我遇到了“在访问 www.hotbit.io 之前检查您的浏览器”。当我以“headless: false”运行程序时,它会在 5 秒后重定向到该页面。但我的问题是,我想以无头方式运行它:true。当我在 headless: true 中运行它时,它在 cloudflare 页面上超时 超时时的屏幕截图
我努力了:
看起来,cloudflare 知道我正在激活无头功能。
有谁知道如何跳过 cloudflare 重定向页面?
我一次用一个网址发送300个时事通讯,2分钟后再次刷新,然后发送下一个300.
但是我收到了这个错误:
网关超时
网关没有收到来自上游服务器或应用程序的及时响应.
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.
我已将最大执行次数设置为3600
ini_set('max_execution_time', 3600);
Run Code Online (Sandbox Code Playgroud)
但我经常得到同样的错误.请帮我找出解决方案.
我有一个基于 React 的 SPA,它通过 S3 托管在一个子域 react.mydomain.com 上……它与托管在另一个子域 api.mydomain.com 上的 VPS 上的 PHP REST API 通信。api.mydomain.com 位于 CloudFlare 之后。Web 应用程序位于 CloudFront 之后,因为它位于 AWS 上。
我遇到了机器人请求直接发送到 API 淹没我的 VPS 的问题,我想使用 CloudFlare 的 JS 挑战功能来缓解。
然而,似乎正在发生的事情是用户能够加载 React webapp(它不在 CloudFlare 后面)。然后,提示JS挑战的请求会立即失败并返回503响应,因为它是一个AJAX请求,与Javascript挑战不兼容。
我想我可以通过捕获错误和重定向来处理这个问题。但是,如果我手动强制我自己的浏览器导航到 api.mydomain.com URL,我将看到 CloudFlare 挑战并通过它。但是,如果我随后导航回我的 react.mydomain.com SPA,则 OPTIONS 请求将失败,因为它无法附加告诉 CloudFlare 它已通过的 cookie。
我不明白如何调整我的基础设施,以便我可以利用使用 JS 挑战。目前我被限制使用速率限制,但我发现当我变得足够严重以至于用户开始抱怨时,我仍然让大约 75% 或更多不需要的机器人流量通过。