listen指令


nginx作为一个高性能的HTTP服务器,网络的处理是其核心,了解网络的初始化有助于加深对nginx网络处理的了解。与网络有关的配置命令主要有两个:listen和sever_name。listen命令设置nginx监听地址,对于IP协议,这个地址就是address和port,对于UNIX域套接字协议,这个地址就是path,一条listen指令只能指定一个address或者port,address也可以是主机名。

一个请求进入Nginx在处理之前先要监听端口,使得Nginx与客户端建立TCP连接。监听端口的指令叫listen,是放在server配置下的,通过监听的端口或者地址。

Syntax:  listen address[:port] [default_server] [ssl] [http2 | spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];listen port [default_server] [ssl] [http2 | spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];listen unix:path [default_server] [ssl] [http2 | spdy] [proxy_protocol] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
Default:
listen *:80 | *:8000;
Context:    server

Listen语法主要有三类


第一类:监听地址加相应的端口,nginx所在的机器上面可能有多块网卡,包括内网网卡和外网网卡,可以通过选择地址,指定server块只处理向这个地址建立连接的请求。

第二类:也可以指定端口,这个好理解比如监听80,8080,443端口.

第三类:或者也可以监听uninx socket地址,这只能用于本机通信。通过address或者port是要走内核的网络栈的,而unix path是不需要的,所以用于本地通信性能会更加好。

listen unix:/var/run/nginx.sock; 监听unix socket地址
listen 127.0.0.1:8000; 因为nginx上面可能有多个地址 端口+地址来确定一个连接listen 127.0.0.1; 默认使用80端口
listen 8000;  监听8000端口但是没有指定地址
listen*:8000;

示例如下


[root@localhost ~]# ip a
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:33:e2:f0 brd ff:ff:ff:ff:ff:ffinet 192.168.179.101/24 brd 192.168.179.255 scope global ens32valid_lft forever preferred_lft foreverinet6 fe80::eb42:2f23:95cb:44b6/64 scope link valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:33:e2:fa brd ff:ff:ff:ff:ff:ffinet 192.168.179.141/24 brd 192.168.179.255 scope global dynamic ens34valid_lft 1329sec preferred_lft 1329secinet6 fe80::2c95:c457:14e:92ef/64 scope link valid_lft forever preferred_lft foreverlisten      8080;
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1452/nginx: master --------------------------------------------------------------------------------------
listen       *:8080;
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1452/nginx: master -------------------------------------------------------------------------------------
listen       127.0.0.1:8080;
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1452/nginx: master  --------------------------------------------------------------------------------------
listen       8080;
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      1452/nginx: master  --------------------------------------------------------------------------------------
listen      192.168.179.141:8080;
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 192.168.179.141:8080    0.0.0.0:*               LISTEN      1452/nginx: master  [root@localhost ~]# curl -I 192.168.179.101:8080
curl: (7) Failed connect to 192.168.179.101:8080; Connection refused[root@localhost ~]# curl -I 192.168.179.141:8080
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Thu, 20 Aug 2020 02:47:33 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 23 Mar 2020 12:32:23 GMT
Connection: keep-alive
ETag: "5e78ac57-264"
Accept-Ranges: bytes----------------------------------------------------------------------------------------
listen     192.168.179.141;
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~]# netstat -tpln | grep 80
tcp        0      0 192.168.179.141:80      0.0.0.0:*               LISTEN      1452/nginx: master 

Nginx listen指令处理连接请求相关推荐

  1. C语言 socket listen()函数(socket()函数创建的socket(套接字描述符)默认是一个主动类型的,listen函数将socket变为被动类型的,等待客户的连接请求)

    摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程.在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被 ...

  2. nginx配置长连接

    2019独角兽企业重金招聘Python工程师标准>>> http {keepalive_timeout 20; --长连接timeoutkeepalive_requests 8192 ...

  3. nginx websocket wss 连接失败 failed_Nginx 配置WSS 解析与实战

    Nginx 配置WSS 解析与实战 1. 几个关键概念 1.1 WebSocket WebSocket 协议是 html5 的一种通信协议,该协议兼容我们常用的浏览器.例如:Chrome.Firefo ...

  4. nginx实现并发连接与IP流量限速功能

    目录 参考 前言 limit_conn_zone 模块 配置 测试 测试小文件 测试大文件 总结 limit_request 模块 配置 测试 测试1 - 不加 burst 和 不加 nodelay ...

  5. nginx如何解决超长请求串

    nginx是一个强大的http服务器,但是在使用过程中发现,当遇到超长的post请求或者get请求时,nginx会返回413.400.414等状态码,这是因为请求串长度超过了nginx默认的缓存大小或 ...

  6. Nginx配置跨域请求 Access-Control-Allow-Origin *

    Nginx配置跨域请求 Access-Control-Allow-Origin * 当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is p ...

  7. Nginx查看并发连接

    Nginx查看并发连接 通过界面查看 通过界面查看通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module 然后 ...

  8. 摘要: Nginx 网络多并发请求的TCP网络参数做简单说明。

    摘要: Nginx 网络多并发请求的TCP网络参数做简单说明. 需要修改/etc/sysctl.conf来更改内核参数 #原有字段 net.ipv4.tcp_syncookies = 1 #新增字段 ...

  9. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)

    文章目录 名称 使用格式 功能参数描述 参数 sockfd addr addrlen 返回值 示例 man 2 文档中的accept解释 错误处理 名称 accept() 接收一个套接字中已建立的连接 ...

最新文章

  1. 在.net中运用HTMLParser解析网页的原理和方法
  2. Linux学习之Vi编辑器常用命令
  3. 条件格式英语成绩大于计算机,决胜计算机二级Ms office(三)
  4. Bitcoin 中的挖矿算法(6) 难度调整
  5. Shell(6)——if语句
  6. VueI18n的应用
  7. mysql 分库分表mycat部署
  8. logback为日志配置颜色
  9. Xpath轴与步长应用:取某节点下所有子孙节点里的文本内容
  10. Java线程并发与安全性问题详解
  11. Polar SI9000阻抗计算
  12. Spring框架常用注解
  13. 无线打印 airprint 服务器,怎么设置普通打印机也能airprint无线打印
  14. 手机APP神器大全,这些被堪称神器的APP你用过哪些!
  15. 界面设计基础之基本窗口
  16. Python实战——外星人入侵游戏
  17. 这篇文章来告诉你几个实用的视频转文字的方法
  18. SASS实现颜色卡动画
  19. 如何搭建nginx服务器?
  20. (修改gho文件办法)做属于自己个性的gho系统

热门文章

  1. 谁让博客挣了钱——看中国博客的新生
  2. awx,micaps,hdf,nc,radar,多普勒雷达,grib等各种数据解析,出图,计算等,有需要,欢迎联系.
  3. 浅谈国产智能手机的自主创新
  4. Android音频——音量调节
  5. 数据科学和机器学习中的优化理论与算法(上)
  6. CCF真题 ISBN号码 题解
  7. Nii图像的读取、操作与保存
  8. Babylongjs-高度图,天空盒,图片精灵及K帧动画
  9. Universal USB Installer – 免光驱将U盘打造成Windows、Linux系统安装盘
  10. 神奇粪菌移植技术挽救垂危妙龄女