Nginx 到 apache 反向代理,指导使用 unix sockets

Qui*_*Par 7 unix nginx reverse-proxy socket

我的 Nginx 反向代理与 webserver(apache) 在同一台机器上工作,如下所示

server {  server_name site.net;
    location / {
        proxy_pass http://localhost:82;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;

    }
}
Run Code Online (Sandbox Code Playgroud)

现在不是使用 TCP 连接到后端 apache,而是如何调整它以使用 unix 套接字?

编辑:
有人可以帮助完成整个流程,指示 apache 也侦听 unix 套接字

c2h*_*5oh 11

虽然您很可能可以使用unix:/path/to/socket语法将 Nginx 设置为代理重定向到套接字,但 ApacheListen指令仅接受 IPv4 或 IPv6,因此据我所知,您无法让 Apache 侦听 unix 套接字。


Cli*_*ler 6

您需要像这样定义一个上游

upstream upstream_name {
        server unix:/path/to/socket fail_timeout=0;
}
Run Code Online (Sandbox Code Playgroud)

然后将proxy_pass设置为按名称引用上游,即,

proxy_pass http://upstream_name
Run Code Online (Sandbox Code Playgroud)

  • 不需要定义上游来代理对 unix 套接字的请求,`proxy_pass http://unix:/path/to/socket:;` 也可以做到这一点,请参阅 http://nginx.org/r/代理通行证。 (5认同)