【发布时间】:2019-10-02 20:46:10
【问题描述】:
我在同一台机器上的 Varnish 6 前面使用 Nginx 作为 SSL 端点。这在使用 TCP 端口时效果很好。由于 Varnish 6 支持监听 Unix 域套接字,我将配置更改为使用套接字:
varnishd 以选项开头:
-a /var/run/varnish.sock,PROXY,user=varnish,group=varnish,mode=666(以前是 -a :8080)在Nginx配置中,我把
proxy_pass http://127.0.0.1:8080;改成了proxy_pass http://unix:/var/run/varnish.sock;
重启 Nginx 和 Varnish,没有错误显示。套接字文件 /var/run/varnish.sock 被创建并且是世界可写的(我知道,我知道......我只是想让它运行)。 Netstat 说 varnishd 正在监听 /var/run/varnish.sock。
但它不起作用,对 nginx 的任何 Web 请求都会返回“502 Bad Gateway”。
Nginx 错误日志显示“上游过早关闭连接,同时从上游读取响应头”。
Varnishlog 为每个请求显示如下条目:
* << Session >> 65578
- Begin sess 0 PROXY
- SessOpen 0.0.0.0 0 a0 0.0.0.0 0 1557937009.691636 21
- SessClose RX_JUNK 0.000
- End
知道出了什么问题吗?
清漆是 varnish-6.0.3 修订版 7d1ded3aa033a018317dbafc61587026ea2ef8a3, Nginx 是 nginx/1.14.0 (Ubuntu), 在 Ubuntu 18.04 仿生上运行
【问题讨论】:
标签: nginx varnish unix-socket