我正在尝试使用多站点设置一个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/.
有人知道如何解决这个问题吗?
我有一个带有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环境中尝试一下Caddy,但它似乎无法连接到其他容器。我创建了一个网络“球童”,并想在它旁边运行一个 portainer。如果我进入球童卷,我可以看到生成了证书,所以这似乎有效。portainer 也正在运行并可通过服务器 IP ( http://65.21.139.246:1000/ ) 进行访问。但是当我通过网址访问时: https: //smallhetzi.fading-flame.com/我收到 502 并且在 caddy 的日志中我可以看到以下消息:
{
"level": "error",
"ts": 1629873106.715402,
"logger": "http.log.error",
"msg": "dial tcp 172.20.0.2:1000: connect: connection refused",
"request": {
"remote_addr": "89.247.255.231:15146",
"proto": "HTTP/2.0",
"method": "GET",
"host": "smallhetzi.fading-flame.com",
"uri": "/",
"headers": {
"Accept-Encoding": [
"gzip, deflate, br"
],
"Accept-Language": [
"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"
],
"Cache-Control": [
"max-age=0"
],
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
],
"Sec-Fetch-Site": [
"none"
],
"Accept": [
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
], …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 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)
谢谢
我正在尝试完成从 Parcel 到 Vite 的迁移。我们使用 caddy 通过 Docker 容器在本地反向代理自定义域。我遇到的问题是,当我在浏览器中加载客户端时,它会不断刷新,控制台说 vite 正在连接,然后循环中“服务器连接丢失,轮询重新启动”。
这是 vite.config.json:
// @ts-ignore
import tailwindcss from "@tailwindcss/jit";
import react from "@vitejs/plugin-react";
// import reactRefresh from "@vitejs/plugin-react-refresh";
// @ts-ignore
import dotenv from "dotenv";
// import postcssImport from "postcss-import";
import presetEnv from "postcss-preset-env";
import { defineConfig } from "vite";
// export default (() => {
// Object.assign(process.env, loadEnv("", ".."));
// dotenv.config({ path: "../.env" });
// now you can access config with process.env.{configName}
export default defineConfig({
server: {
host: "0.0.0.0",
// …Run Code Online (Sandbox Code Playgroud) 我正在使用systemd在ubuntu 16.04机器上启动一个caddy webserver.每当我跑sudo service caddy start和service caddy status,我得到这个错误:
? caddy.service - Caddy webserver
Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2016-08-29 05:03:02 EDT; 4s ago
Docs: https://caddyserver.com/
Process: 1135 ExecStart=/usr/local/bin/caddy -agree -email me@example -pidfile=/var/run/caddy/caddy.pid (code=exited, status
Main PID: 1135 (code=exited, status=1/FAILURE)
systemd[1]: Started Caddy webserver.
caddy[1135]: Activating privacy features... done.
caddy[1135]: 2016/08/29 05:03:02 Caddyfile:12 - Parse error: unknown property 'errors'
systemd[1]: caddy.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: caddy.service: Unit …Run Code Online (Sandbox Code Playgroud) 我的后端在反向代理后面运行时无法配置,因为我无法配置自定义基本 URL。
对于登录过程,后端大量使用 HTTP 重定向,但由于在反向代理后面,它发送客户端无法访问的重定向 URL。
所以我想知道是否有办法重写上游 HTTP HEADER Location
如果后端响应
HTTP/1.1 301
Location: http://backend-hostname/auth/login
Run Code Online (Sandbox Code Playgroud)
球童应该将Location标头重写为
HTTP/1.1 301
Location: http://www.my-super-site.com/service/a/auth/login
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
我知道我们可以通过声明来删除标题
header / {
- Location
}
Run Code Online (Sandbox Code Playgroud)
但是可以替换标题并重写URL吗?
我有一个网站设置与球童服务反应应用程序.但它的代理部分似乎并没有将请求转发给其他docker容器.它仍然显示我的反应页面example.com/api.
我的球童文件:
example.com {
gzip
root /app/build # directory of public pages # Single-page react app
proxy /staticfiles django:8000 {
transparent
}
proxy /api django:8000 {
transparent
}
}
Run Code Online (Sandbox Code Playgroud) 我试图让 ssl 在我的 ec2 实例上工作,但sudo yum caddy install告诉我我需要它Requires: libc.so.6(GLIBC_2.34)(64bit),顺便说一句,我找不到在 linux ec2 服务器上安装它的方法
凯迪认为一切都很好:
{"level":"info","ts":...,"logger":"tls.issuance.acme.acme_client","msg":"validations succeeded; finalizing order","order":"https://acme-v02.api.letsencrypt.org/acme/order/.../..."}
{"level":"info","ts":...,"logger":"tls.issuance.acme.acme_client","msg":"successfully downloaded available certificate chains","count":2,"first_url":"https://acme-v02.api.letsencrypt.org/acme/cert/..."}
{"level":"info","ts":...,"logger":"tls.obtain","msg":"certificate obtained successfully","identifier":"service.internal.example.com"}
{"level":"info","ts":...,"logger":"tls.obtain","msg":"releasing lock","identifier":"service.internal.example.com"}
Run Code Online (Sandbox Code Playgroud)
Caddy 容器内部:
# curl https://localhost/ -H "Host: service.internal.example.com" -v
* Trying 127.0.0.1:443...
* Connected to localhost (127.0.0.1) port 443 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS alert, internal error (592):
* error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
* Closing connection 0
curl: (35) error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert …Run Code Online (Sandbox Code Playgroud)