Nginx:如何使用accept_filter = httpready设置多个服务器

标签 nginx freebsd

在 FreeBSD 机器上,我有一个 super 简单的 Nginx conf 文件 (nginx/1.8.1):

server {
  server_name .domain1.com;
  listen 80 accept_filter=httpready;
  index index.html;
  location / {
      root /home/www1;
  }
}

server {
  server_name domain2.com;
  listen 80 default_server accept_filter=httpready;
  index index.htm;
  location / {
      root /home/www2;
  }
}

如果我只为其中一台服务器启用了 accept_filter=httpready,则此方法有效。但正如上面所写,它失败了,并显示

nginx:[emerg] 0.0.0.0:80 的重复监听选项

为什么我无法为两台服务器设置 accept_filter=httpready

最佳答案

http://nginx.org/r/listen

The listen directive can have several additional parameters specific to socket-related system calls. These parameters can be specified in any listen directive, but only once for a given address:port pair.

因此,您应该仅使用 accept_filter=httpready 一次,但它将对监听同一 address:port 的所有服务器 block 有效。

关于Nginx:如何使用accept_filter = httpready设置多个服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36473527/

相关文章:

c - 为什么Nginx需要内存对齐

freebsd - 为什么 poudriere 创建一对有 IP 地址和没有 IP 地址的 jail

ubuntu - 如何在 Ubuntu VPS 上安装 FreeBSD?

javascript - 什么可以解释浏览器间歇性地不加载某些 CORS(crossorigin)javascript 文件?

docker - 用于Docker的Kibana的NginX反向代理

ssl - 基于客户端证书的 nginx 授权

unix - 使用 Fossil 做系统文件?

python - 你能解释一下 python 中的以下信号处理行为吗?

python - 从 python 脚本将日志写入/var/log 的最佳实践?

node.js - 如何为reveal.js 设置我的socket.io 服务器?