标签: caddyfile

用于Wordpress多站点的Caddy配置

我正在尝试使用多站点设置一个Wordpress网站:

  • example.com

  • example.com/fr

使用以下Caddyfile:

example.com:80 {
    redir https://www.example.com{uri}
}

www.example.com:80 {
    root /app/public
    gzip

    fastcgi / 127.0.0.1:9000 {
        ext .php
        split .php
        index index.php
    }

    rewrite {
        regexp ^/[_0-9a-zA-Z-]+(/wp-.*)
        to {path} {path}/ {1}
    }

    rewrite {
        regexp ^/[_0-9a-zA-Z-]+(/.*\.php)$
        to {path} {path}/ {1}
    }

    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }

    log stdout
    startup /usr/sbin/php-fpm7.0 -F -O &
}
Run Code Online (Sandbox Code Playgroud)

当我到达时/fr/wp-admin/,我得到301 /wp-admin/.

有人知道如何解决这个问题吗?

wordpress multisite caddy caddyfile

13
推荐指数
1
解决办法
978
查看次数

通过IP访问Caddy服务器

我有一个带有docker的网站,并且使用caddy进行生产。这是我的配置Caddyfile

mydomain.com {
    proxy / django:5000 {
        header_upstream Host {host}
        header_upstream X-Real-IP {remote}
        header_upstream X-Forwarded-Proto {scheme}
        header_upstream X-CSRFToken {~csrftoken}
    }
    log stdout
    errors stdout
    gzip
}
Run Code Online (Sandbox Code Playgroud)

当我使用mydomain.com时此配置效果很好,但是当我尝试通过IP访问服务器时,它返回以下错误:

404 Site 156.130.11.8 is not served on this interface
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用*156.130.11.8:80

* {
    proxy / django:5000...
    ...

156.130.11.8 {
    proxy / django:5000...
    ...
Run Code Online (Sandbox Code Playgroud)

这一切都不起作用,你们当中有人知道我该如何解决吗?

编辑:代码在这里:https : //github.com/maguayo/django-starter-api 球童配置位于compose / production / caddy /下,我正在运行的配置位于“ production.yml ”上

docker docker-compose caddy caddyfile

11
推荐指数
1
解决办法
548
查看次数

Caddy V2 IP白名单

我正在尝试在我的 Caddy v2 配置上实施 IP 白名单。相当于 NGINX 配置的东西,例如:

allow 1.1.1.1;
allow 8.8.8.8;
deny all; 
Run Code Online (Sandbox Code Playgroud)

我当前的 Caddy 配置非常简单:

my.website.com {
        reverse_proxy http://127.0.0.1:3000 {   
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

linux caddy caddyfile

10
推荐指数
3
解决办法
8061
查看次数

Caddy 可以将 GZIP 压缩应用于代理响应吗?

我正在运行 Caddy v1 作为反向代理,并且我想对例如 JSON 响应应用 GZIP 压缩。

我注意到gzipCaddy v1 指令仅适用于 Caddy 为其自身服务的文件,而不适用于 Caddy 使用该proxy指令运行反向代理的响应。

0.0.0.0:8080 {
    gzip {
      ext *
      level 9
    }
    log stdout
    errors stdout

    proxy /api/v2 127.0.0.1:50010 {
          transparent
          without /api/v2
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法压缩代理的响应主体,或者 Caddy 无法做到这一点?

gzip reverse-proxy caddy caddyfile

6
推荐指数
0
解决办法
387
查看次数

使用Caddy的Web套接字反向代理(WSS)

Project GitHub URL

我刚开始使用球童.我做了一个简单的聊天应用程序,我正在使用球童服务.
WebSockets由应用程序在ws而不是wss上提供,类似于应用程序在HTTP上而不是https上提供应用程序的方式.我正在尝试使用caddy保护协议,并已成功完成https的协议.由于我在使用https时无法使用ws,因此我还需要在wss上提供WebSockets.我在文档中找不到一种方法,我可以找到如何将代理wss反转为ws,就像我使用https到http一样.

我尝试了什么

your.tld.com {
    proxy / 0.0.0.0:8266 {
        transparent
        websocket
    }
}
Run Code Online (Sandbox Code Playgroud)

2)

your.tld.com {
    proxy / 0.0.0.0:8266 {
        transparent
    }
   proxy /ws 0.0.0.0:8266 {
        transparent
    }
}
Run Code Online (Sandbox Code Playgroud)

3)

your.tld.com {
    proxy / 0.0.0.0:8266 {
        transparent
    }
   proxy /ws 0.0.0.0:8266/ws {
        transparent
   }
}
Run Code Online (Sandbox Code Playgroud)

以上的attemots没有用.希望能在这里找到解决方案.

web-services websocket caddy caddyfile

5
推荐指数
1
解决办法
1560
查看次数

指定 Caddy 监听端口

“默认情况下,Caddy 将绑定到端口 80 和 443 以提供 HTTPS 服务并将 HTTP 重定向到 HTTPS。” ( https://caddyserver.com/docs/automatic-https )

我们如何更改此端口?

背景:在我们的设置中,Caddy 在 AWS 负载均衡器后面运行,该负载均衡器将请求从端口 443 转发到端口 4443。因此,我们希望 Caddy 侦听 4443。(我们使用 DNS 挑战。)

caddy caddyfile

5
推荐指数
2
解决办法
9159
查看次数

如何使用 caddy 作为带有 h​​ttps 的本地域的反向代理

是否可以使用 caddy 进行本地开发,其中您有https://mysite.loc并使用 Caddyfile 作为本地主机上运行的服务的反向代理?

我的主机文件,所以我有本地 mysite.loc 域

127.0.0.1   mysite.loc
Run Code Online (Sandbox Code Playgroud)
mysite.loc {
  reverse_proxy /api localhost:5000
  reverse_proxy /admin localhost:6000
  reverse_proxy /graphql localhost:7000
  reverse_proxy localhost:4000

  tls ???
}

Run Code Online (Sandbox Code Playgroud)

这就是我已经走了多远。我认为我需要以某种方式将 mysite.loc 指向正在运行的 caddy 守护进程,以便它可以拦截提供生成的证书的请求,然后我将在本地信任该证书,并充当重定向到本地运行的服务的代理。我还认为我不需要自己生成任何证书球童应该这样做吗?我还想避免使用 mysite.loc 的任何端口,例如https://mysite.loc:4000只是https://mysite.loc,然后让 Caddy 处理其余的事情。我也想避免使用 docker。

reverse-proxy caddy caddyfile

5
推荐指数
1
解决办法
5746
查看次数

什么是 Caddyfile 文件类型?

我正在使用 PhpStorm 开发一个项目。

我创建了一个 Caddyfile 来配置我的 Caddy 服务器。

但 PhpStorm 不会格式化或突出显示 Caddyfile 的代码。

我知道我可以更改特定文件的文件类型,但我不知道应该为 Caddyfile 选择哪种文件类型。

intellij idea 中的 Caddyfile 文件类型是什么?

intellij-idea caddyfile

5
推荐指数
1
解决办法
695
查看次数

Caddy - 在本地域上设置HTTPS

我想将HTTPS添加到我的本地域,但是我们无法在localhost上执行此操作.

当我使用这个Caddyfile运行时,我的网站运行正常

localhost:2020 {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}
Run Code Online (Sandbox Code Playgroud)

但我想命名这个网站或者至少在其上启用HTTPS.根据Caddy的说法,你无法在localhost上执行此操作,但如果我有域名怎么办?

我试过用这个Caddyfile使用我自己的本地地址

192.168.100.26 {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}
Run Code Online (Sandbox Code Playgroud)

一切正常但我仍然没有HTTPS ...

当我尝试添加一个随机域名时

www.mycaddytest.com {
  bind {$ADDRESS}
  proxy / http://192.168.100.82:9000 {
    transparent
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Activating privacy features...2016/08/18 11:53:26 [www.mycaddytest.com] failed to get certificate: acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for www.mycaddytest.com
Error Detail:
Validation for www.mycaddytest.com:80
Resolved to:

Used: 
Run Code Online (Sandbox Code Playgroud)

我知道这个错误是由于一个不存在的域名,但有没有办法处理?

只需在localhost或ip地址上获取HTTPS就足够了

https localhost caddy caddyfile

4
推荐指数
4
解决办法
6943
查看次数

Caddy 不渲染资源

我有一个不渲染资产的 Rails 应用程序。以前运行良好。当我添加链接文件时,它不仅上传我指定的文件,还上传预编译的资源。即使在破坏所有资源并重新编译之后,它也无法渲染它们,即使它们存在于盒子上。

错误 在此输入图像描述

球童文件

mydomain.com {
  gzip
  log stdout
  root /home/deploy/apps/rails-app/current/public
  proxy / unix:///home/deploy/apps/rails-app/shared/tmp/sockets/rails-app-puma.sock {
    except /assets # this is /public/assets directory
    except /solr
    transparent
    websocket
    policy round_robin
  }
  errors stdout
  header / {
        Strict-Transport-Security "max-age=31536000"
  }

  proxy /solr localhost:8983 {
    transparent
  }
}
Run Code Online (Sandbox Code Playgroud)

部署.rb

# frozen_string_literal: true

# config valid only for current version of Capistrano
# lock '3.13.0'

# Change these
server '...', port: 2221, roles: %i[web app db], primary: true

set :repo_url,        '...'

set …
Run Code Online (Sandbox Code Playgroud)

ubuntu ruby-on-rails sprockets caddy caddyfile

4
推荐指数
1
解决办法
584
查看次数

如何告诉 Caddy 使用哪个子域

我第一次尝试使用 Caddy。我希望能够为多个子域提供服务。Caddy 向 Let's Encrypt 请求 SSL 证书。我已经设法让它在 caddyfile 中只有一个域名的情况下正常工作。

但是,假设我有

www.example.com, test.example.com {
    ...  lots of settings
}
Run Code Online (Sandbox Code Playgroud)

我依靠 Let's Connect 服务器回调这些子域之一(即不使用 DNS TXT 记录)。但这引发了一些问题:

  • Caddy 在请求证书时使用哪一个?
  • 有没有一种方法可以指定我想要它使用哪一个?

(在上面的示例中只有两个子域,但实际上我想知道如何让它与两个以上的子域一起使用。)

- 编辑:当我尝试这个时test.example.com,我收到一个错误(注意:我隐藏了我的实际域名):

Activating privacy features...2016/11/21 07:47:41 [www.example.com] failed to get certificate: acme: Error 403 - urn:acme:error:unauthorized - Invalid response from http://www.example.com/.well-known/acme-challenge/ALmqQ8Vl5fvPF91tvqw2zigHlPoRRgTGR2GaLtgX3-A [134.92.240.68]: 404
Run Code Online (Sandbox Code Playgroud)

Caddy 打印更多细节,本质上是重复相同的信息,然后终止。

lets-encrypt caddy caddyfile

3
推荐指数
1
解决办法
6035
查看次数

Caddy - 如何仅对一个域禁用 https

我有一个 Caddy v2 的配置文件,如下所示:

sentry.mydomain.ru {
    reverse_proxy sentry:9000
}

tasks.mydomain.ru {
    reverse_proxy taiga-proxy:80
}

ain.mydomain.ru {
    reverse_proxy ain-frontend:80
}
Run Code Online (Sandbox Code Playgroud)

Caddy 为每个域制作 https,但我只需要为ain.mydomain.ru. 怎么做?

caddy caddyfile

3
推荐指数
2
解决办法
5550
查看次数