所以我最近开始因为未知原因而遇到NGINX崩溃的问题。
经过很多时间尝试修复它后,我决定转移到Caddy。
我的球童配置适用于浏览网站,但它打破了编辑页面时使用的/synchrony
访问。纯websocket部分工作,我使用http://websocket.org/echo.html测试,但Confluence也通过该路径检索一些脚本。
我使用以下作为troobleshooting的参考:https://confluence.atlassian.com/conf60/troubleshooting-collaborative-editing-852732552.html
我工作的NGINX配置
server {
listen 443 ssl;
server_name [REDACTED];
ssl_certificate [REDACTED];
ssl_certificate_key [REDACTED];
client_max_body_size 100m;
location / {
proxy_pass http://localhost:8090;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /synchrony {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8091/synchrony;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
我建议等效的非工作Caddy配置
https://[REDACTED] {
log access.log
errors error.log
gzip
tls "C:\caddy\[REDACTED].cer" "C:\caddy\[REDACTED].key"
proxy /synchrony http://localhost:8091/synchrony {
websocket
}
proxy / http://localhost:8090 {
except /synchrony
transparent
}
}
以上是基于以下文档:https://caddyserver.com/docs/proxy它使用transparent
和websocket
预设。
我想你可能需要使用without
参数。
without
是在代理上游请求之前要修剪的URL前缀。例如,对/api/foo
without /api
的请求将导致向/foo
提出代理请求。
你可以试试这个:
https://[REDACTED] {
log access.log
errors error.log
gzip
tls "C:\caddy\[REDACTED].cer" "C:\caddy\[REDACTED].key"
proxy /synchrony http://localhost:8091/synchrony {
websocket
without /synchrony
}
proxy / http://localhost:8090 {
except /synchrony
transparent
}
}