本文介绍: 如果只有一块网卡,那么只有一个IP,如果是虚拟样还有虚拟网卡的IP,这样实际上就会涉及到多个IP,*代表所有的IP。和*.8000一样,表示将服务器所有支持ip地址绑定端口,这样所有的IP地址可以提供服务。(一般不会写在listen的后面,一般ssl在其他的地方配置配置ssl那么该端口只提供ssl服务,说白了就是https)(能够承载多少tcp连接设置的越大,承载的tcp连接越多,反之)对于IP协议来讲,可以配置端口,可以只配置IP,也可以IP和端口配置

listen 指令


| sndbuf=size | accept_filter | deferred | bind | ipv6only=[on|off] | ssl]];
默认listen 80
配置块:
server
 

含义

指定服务监听的地址,如果使用IP协议,则可以包括IP地址和端口如果使用UNIX域套接字协议,则为文件路径

作用域

只能在server块中设置,并起作用。

配置解析
backlog

TCP

backlog
队列大小。(能够承载多少tcp的连接,设置的越大,承载的tcp连接越多,反之)
sndbuf
:设置发送缓存大小
这会决定服务器的吞吐速度,如果设置发送缓存大小为8k,那么页面小于8k就可以一次发送
如果大于8k需要多次往外面发送。一般使用默认
accept_filter
:设置
accept
过滤器大小,仅对
FreeBSD
操作系统起作用。
deferred
三次握手
worker
仍不处理,实际数据到达后
worker
再参与处理。(这样worker进程不会对三次握手牵扯住,他有足够的精力处理手头的工作
bind
绑定当前端口

地址对,如:
127.0.0.1:8000(只有多个IP地址和端口才涉及到绑定,一般都不需要绑定,因为服务器只有一个IP)
ssl
:在监听的对口上建立连接必须基于
ssl
。(一般不会写在listen的后面,一般ssl在其他的地方配置配置ssl那么该端口只提供ssl的服务,说白了就是https)
ssl需要编译到ssl模块,同时还需要提供ssl证书

# 补充知识点:/etc/hosts域名解析文件配置
本地浏览器访问某个域名的时候,首先会从/etc/hosts文件查找,找不到再去dns中去找
,所以你可以直接配置本地域名

#vim /etc/hosts
127.0.0.1 www.baidu.com 

设置方法


对于IP协议来讲,可以只配置端口,可以只配置IP,也可以IP和端口都配置。 

 示例

  • listen [::]:8000;  IPV6  监听IPv6的8000端口
  • listen [fe80::1];  这个只写了IPV6的ip没有端口号
  • listen [:::a8c9:1234]:80;

 如果没有配置listen指定,对于root权限用户监听80端口,对于非root用户监听8000端口。

 

 

 示例


只配置端口80 

使用listen的时候可以直接配置,直接去写端口号,或者去写其IP地址。

一般都是这种直接就一个80端口,意味着这台主机上面有几个IP,他就会去为这些IP的80端口提供服务

下面的这些IP访问80端口都可以提供服务

[root@jenkins ~]# ifconfig 
br-a07742cf33c8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet 10.1.0.1  netmask 255.255.255.0  broadcast 10.1.0.255
        inet6 fe80::42:9bff:fe4a:a821  prefixlen 64  scopeid 0x20<link&gt;

docker0: flags=4099<UP,BROADCAST,MULTICAST&gt;  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:90ff:fee6:469b  prefixlen 64  scopeid 0x20<link&gt;

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet 192.168.11.128  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::20c:29ff:fe00:9de2  prefixlen 64  scopeid 0x20<link&gt;

lo: flags=73<UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host&gt;

root表示web服务器能够访问的根,默认首页index.html或者index.htm。50x.html表示当服务器发生错误的时候会自动返回50x.html页面

location / {
  root html;
  index index.html index.htm;
}

[root@jenkins nginx]# cd html/
[root@jenkins html]# ls
50x.html  index.html
[root@jenkins html]# for ip in `ifconfig | grep -w inet | awk '{print $2}'`;do echo $ip**********;curl $ip;done 

10.1.0.1**********
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

172.17.0.1**********
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

192.168.11.128**********
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

127.0.0.1**********
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

可以看到这三个IP的端口都可以对外提供服务,也就是机器上面插了几块网卡,那么就有几块IP,如果配置的时候不去指定IP,那么这些网卡上的IP就都可以对外提供服务。

指定某个IP对外提供服务,其他IP不对外提供服务

注意,修改之后,需要重启重启reload是不一样的。

[root@jenkins conf]# nginx -s quit
[root@jenkins conf]# nginx

[root@jenkins conf]# for ip in `ifconfig | grep -w inet | awk '{print $2}'`;do echo $ip**********;curl $ip;done 
10.1.0.1**********
curl: (7) Failed connect to 10.1.0.1:80; Connection refused
172.17.0.1**********
curl: (7) Failed connect to 172.17.0.1:80; Connection refused
192.168.11.128**********
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
127.0.0.1**********
curl: (7) Failed connect to 127.0.0.1:80; Connection refused

原文地址:https://blog.csdn.net/qq_34556414/article/details/132847822

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_16121.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注