问题标签 [caddy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django + Channels + Daphne + Caddy + 管理文件上传 = 413 错误
我有一个使用 Caddy 在生产中部署的 Django Web 应用程序。我使用 Caddy 作为指向 daphne 的反向代理,它指向我的 Django 应用程序。但是,当我尝试在生产环境中将 5MB 文件上传到 django 管理门户时,出现 413 错误。在调试模式下,当我只使用 Django(没有 caddy 或 daphne)时,我没有收到此错误。有人有想法么?这是我的 Caddyfile 和相关文件:
asgi.py
wsgi.py
ssl - Caddy 服务器 HTTPS 重定向导致“重定向过多”
我的网络主机已经提供了在我的域上配置的 SSL,所以我想使用 Caddy 服务器将 HTTP 流量重定向到 HTTPS,使用文档中的“仅当转发的协议是 HTTP 时才重定向”示例。问题是浏览器无法呈现我的球童配置页面。转到 URL 显示错误:
页面未正确重定向。连接到 **** 时发生错误。此问题有时可能是由禁用或拒绝接受 cookie 引起的。(火狐)
此页面无法正常工作 **** 将您重定向了太多次。尝试清除您的 cookie。ERR_TOO_MANY_REDIRECTS(铬)
这是我的球童档案
我的主机提供 $PORT=8080 作为 Web 流量的主要入口点,因此我启动了 NodeJS 应用程序来监听 $API_PORT=9090。我的期望是 Caddy 接收端口上的所有流量0.0.0.0:8080
并将所有非 HTTPS 请求重定向到我在端口上的 NodeJS 应用程序0.0.0.0:9090
。我喜欢这个想法,因为我不想将网络逻辑放在应用程序中,但也许我错了。
Caddy 和 NodeJS 在同一台机器上。
vue.js - 如何为 Caddy + Vue App 配置 Rendora
我有一个 Caddy 在我的服务器上为我的 vue 应用程序提供服务。出于 SEO 原因,我想添加 Rendora,但我认为它不起作用。
我已经设置并运行了所有东西(Caddy、Headless Chrome、Rendora),但是当我从本地电脑 curl 时我无法获取静态 html,所以我认为 Rendora 工作不正常。我做错了什么?这是我的rendora配置:
proxy - 如何使用 Caddy 和子路径部署 Next.js 应用程序?
我目前正在使用 Next.js 做一个应用程序8.0.3
。
在当地一切都很好。但是,当我使用 Caddy 部署应用程序时,我遇到了一些麻烦。
关于我的 Next.js 部分,我正在使用自定义服务器并为该服务器提供服务,我正在这样做:
问题本身是关于将应用程序路由到子路径,例如/beta
在该子路径内运行所有应用程序。
球童档案
当我运行http://localhost:8000/beta
在浏览器中打开的应用程序时,HTML 已正确加载,但未加载所有样式、资产和 javascript 文件。既不是页面之间的导航。它在后面查看这些文件/
,而我期待在后面/beta
。
复制失败的 url 并尝试找到添加的正确路径/beta
,文件也不存在......
不过,如果没有子路径/beta
(如果我直接使用 root /
),一切正常。但这不是我正在寻找的解决方案,因为我在同一个域后面运行了更多应用程序。
有一个解决方法是这个特定的例子。是代理也/_next
和/static
。但对我来说不是一个好的解决方案,原因不同:
- 无法运行超过 1 个 Next.js 应用程序,例如
/beta
,/alpha
。 - 此解决方案不修复页面之间的导航。
- 我想在 Next.js 部分解决这个问题(如果可能的话),而不是在 Caddy 部分做一个解决方法。
看起来这与 Next.js 部分有关。但我对此很迷茫。我试图更改assetPrefix: '/beta'
,然后正在寻找文件/beta/file
而不是/file
. 但是文件也不存在...
有人可以帮助我吗?
nix - 如何在 NixOS 中启用 Caddy 插件?
我刚刚开始使用 NixOS,到目前为止,我已经设法/etc/nixos/configuration.nix
在我的 NixOS 18.09 VM 中进行编辑,以启用 PHP-FPM 和 Caddy 网络服务器。
在 localhost:8080 上提供了 PHP 处理的响应。(耶!)
为了在从 source 编译时启用 Caddy 插件,将Go 导入添加到 caddy 的run.go中,例如:
如何设置在下载源之后和构建发生之前执行这样的行插入?(如果这是使用 Nix 时的合理方法?)
我相信在编写包时可以分配构建器脚本(Bash 或其他),并且我认为可以在其中完成行插入。但是我不知道在这种情况下如何将脚本分配给现有包(覆盖属性/使用覆盖?)以及将脚本放在磁盘上的什么位置。
状态更新
我一直在阅读有关自定义包的一般信息,听起来覆盖可能是我需要的。但是,我似乎无法评估我的叠加层。
我使用覆盖包名称作为测试,因为它比修补代码更简单。
叠加尝试 1
/etc/nixos/configuration.nix
:
/etc/nixos/overlays-compat/overlays.nix
:
/etc/nixos/overlays-compat/caddy.nix
:
叠加尝试 2
/etc/nixos/configuration.nix
:
error: anonymous function at /nix/store/mr5sfmz6lm5952ch5q6v49563wzylrkx-nixos-18.09.2327.37694c8cc0e/nixos/pkgs/servers/caddy/default.nix:1:1 called with unexpected argument 'name', at /nix/store/mr5sfmz6lm5952ch5q6v49563wzylrkx-nixos-18.09.2327.37694c8cc0e/nixos/lib/customisation.nix:69:12
覆盖属性
我以前设法用这个覆盖包名称:
我可以在 htop 中看到 caddy 二进制文件位于名为/nix/store/...-caddy-override-v0.11.0-bin/
. 但我知道以这种方式覆盖已被覆盖所取代。
go - 将 Caddy 导入 go 项目在依赖项上失败
我想导入Caddy
一个 go 项目,但我似乎无法提出最基本的例子。我尝试拉依赖关系dep
或go mod
两者都失败了。
dep init
go build
(使用 go mod)
这是一个非常基本的脚本:
那么我应该如何在我自己的包中使用 Caddy 呢?
caddy - Caddy URL 从 blog.mysite.com 重写为 mysite.com/blog
我有一个 ruby on rails 应用程序正在运行,我使用 caddy 进行反向代理。
我的博客由 jekyll 生成,从 github.com 提供给 domian - blog.mysite.com
我需要在为 mysite.com 提供服务的 Caddyfile 中进行哪些编辑,以便在同一域上提供博客,例如:
blog.mysite.com/01/article/first-article
担任mysite.com/blog/01/article/first-article
。
谢谢。
docker - Docker拒绝端口443上的连接
我正在设置我的 AWS EC2 实例。我想让该实例通过https
但我得到一个
这是我尝试过的
跑docker pull abiosoft/caddy
将 Caddyfile 放在主文件夹中
跑mkdir -p $HOME/caddycerts; chmod ugo+rwx $HOME/caddycerts;
跑docker run -d -e "CADDYPATH=/etc/caddycerts" -v $HOME/Caddyfile:/etc/Caddyfile -v $HOME/caddycerts:/etc/caddycerts -p 443:443 abiosoft/caddy
跑docker restart *dockerName*
我的 Caddyfile 看起来像这样:
错误:curl: (7) 无法连接到 some-domain-name.com 端口 443:连接被拒绝
EC2 实例的安全组已https
为端口启用443
gzip - 如何有条件地在 Caddy 中应用 gzip 指令?
我正在尝试将 Caddy 配置为仅在 Referer 标头与特定域匹配时才使用 gzip。这是为了减轻潜在的 BREACH 攻击。
但是,我在 Caddyfile 中看不到允许我根据标头的值有条件地打开 gzip 的方法。
这里的 gzip 指令:
https://caddyserver.com/docs/gzip
仅允许基于路径或文件扩展名的条件应用程序。
希望这不涉及编写自定义指令?
docker - Docker compose run 在入口点抛出错误
运行以下命令:
docker-compose up -d
引发以下错误:
这是docker-compose.yml
文件
知道我会在这里错过什么吗?