配置监听

监听配置

server {
    listen      80;
    server_name example.org www.example.org;
    ...
}

server {
    listen      80 default_server;
    server_name example.net www.example.net;
    ...
}

server {
    listen      80;
    server_name example.com www.example.com;
    ...
}

监听配置说明

  • listen 80:监听 80 端口
  • default_server:指定默认服务器

监听配置原理: Nginx 通过 listen 指令监听指定的端口和地址。当 Nginx 收到一个请求时,会根据请求的 IP 地址和端口选择匹配的虚拟服务器。

默认服务器

server {
    listen      80 default_server;
    server_name example.net www.example.net;
    ...
}

默认服务器说明

  • default_server:指定默认服务器

默认服务器原理: 当 Nginx 收到一个请求时,如果没有匹配的虚拟服务器,会使用默认服务器处理请求。默认服务器用于处理未匹配的请求。

监听多个端口

server {
    listen      80;
    listen      8080;
    server_name example.org www.example.org;
    ...
}

监听多个端口说明

  • listen 80:监听 80 端口
  • listen 8080:监听 8080 端口

监听多个端口原理: Nginx 可以监听多个端口,提高灵活性。当 Nginx 收到一个请求时,会根据请求的端口选择匹配的虚拟服务器。

监听多个地址

server {
    listen      192.168.1.1:80;
    listen      192.168.1.2:80;
    server_name example.org www.example.org;
    ...
}

监听多个地址说明

  • listen 192.168.1.1:80:监听 192.168.1.1 的 80 端口
  • listen 192.168.1.2:80:监听 192.168.1.2 的 80 端口

监听多个地址原理: Nginx 可以监听多个地址,提高灵活性。当 Nginx 收到一个请求时,会根据请求的 IP 地址和端口选择匹配的虚拟服务器。

监听参数

参数说明示例
default_server指定默认服务器listen 80 default_server
ssl启用 SSLlisten 443 ssl
http2启用 HTTP/2listen 443 ssl http2
quic启用 QUIClisten 443 quic
reuseport启用端口复用listen 443 quic reuseport
backlog设置监听队列长度listen 80 backlog=511
rcvbuf设置接收缓冲区大小listen 80 rcvbuf=8k
sndbuf设置发送缓冲区大小listen 80 sndbuf=8k

最佳实践

  1. 配置默认服务器:配置默认服务器,处理未匹配的请求
  2. 监听多个端口:监听多个端口,提高灵活性
  3. 监听多个地址:监听多个地址,提高灵活性
  4. 启用 SSL:启用 SSL,提高安全性
  5. 启用 HTTP/2:启用 HTTP/2,提高性能
  6. 启用 QUIC:启用 QUIC,提高性能
  7. 启用端口复用:启用端口复用,提高性能