如何理解Nginx中的default_server?作为 Web 服务器,Nginx允许你在其配置文件中定义多个服务器块。所有这些服务器都作为单独的虚拟 Web 服务器运行。因此,需要一种确定哪个服务器将处理特定入站请求的方法。在 Nginx 配置文件中,default_server 标志用于此目的,下面我们结合Nginx default_server用法示例来理解它。
Nginx中的default_server是什么?
在 server 块中,当在listen 指令上添加default_server标志时,Nginx将声明该服务器为默认服务器。之后,Nginx 将使用默认服务器处理请求,当它们的 HTTP Host 标头与任何其他服务器块保持不匹配时。default_server 标志只能在 server 块中添加一次,其中任何 IP:port 组合指定为 listen 指令的参数。但是,可以在 IP:port 的不同组合上多次使用 default_server 标志。
在 Nginx 中使用 default_server 之前,如果你的系统上还没有 Nginx,你必须先安装它!
如何在 CentOS 中安装 Nginx
首先,按“ CTRL+ALT+T ”打开你的 CentOS 终端,然后写出下面给出的命令:
$ sudo yum install nginx
无错误输出声明 Nginx 已成功安装到你的系统上。
如何在 CentOS 中启用 Nginx
现在,使用下面给出的命令在 CentOS 系统上启用 Nginx:
$ sudo systemctl enable nginx
之后,启动 Nginx 服务:
$ sudo systemctl start nginx
如何在 CentOS 中为 Nginx 设置防火墙规则
如何理解Nginx中的default_server?我们要做的下一件事是设置防火墙设置以允许 Nginx 的外部连接,默认情况下在端口80上运行。所述防火墙-CMD是用来管理永久和运行时firewalld配置的命令。
要永久启用端口 80 上的 HTTP 连接,请在 CentOS 终端中写出以下给定的命令:
$ sudo firewall-cmd --permanent --add-service=http
要验证HTTP防火墙服务是否正确添加到系统中,请执行以下命令:
$ sudo firewall-cmd --permanent --list-all
现在,你必须重新加载防火墙服务:
$ sudo firewall-cmd --reload
如何在 Nginx 中设置服务器
Nginx default_server用法示例:在 Nginx 配置文件中,服务器配置指令(例如服务器名称和TCP 端口)在服务器块 {} 中指定。listen 指令指示 Nginx 在指定的 IP 和 TCP 端口上监听 HTTP 连接。当 Nginx 处理请求时,服务器名称指令指示它从众多服务器块的列表中选择一个特定的服务器。
Nginx中的default_server是什么?如果你想在 Nginx 中设置一个虚拟服务器,那么在你的 nano 编辑器中,打开 Nginx 配置文件“ /etc/nginx/nginx.conf ”:
$ sudo nano /etc/nginx/nginx.conf
你的 Nginx 配置文件将如下所示:
你的 Nginx 配置文件应至少包含一个用于定义虚拟服务器的服务器指令。在处理请求时,Nginx 首先确定哪个虚拟服务器将处理请求。在 http 上下文中,虚拟服务器由服务器指令定义,例如:
http {
server {
# Server configuration
}
}
在服务器块中,你可以配置与特定服务器相关的所有设置:
多个服务器指令被添加到 http 上下文中以定义多个虚拟服务器。服务器配置块中的“侦听”指令用于添加服务器侦听请求的 IP 地址和端口。允许使用 IPv4 和 IPv6 地址,并且应在方括号内添加 IPv6 地址。
侦听端口 8080 和 IP 地址 127.0.0.1 的服务器配置如下例所示:
http {
server {
listen 127.0.0.1:8080;
# Additional server configuration
}
}
如何在 Nginx 中设置默认服务器
Nginx default_server用法示例:在Nginx配置文件中,default_server选项指定了默认服务器,具有未知域和空主机字段的客户端请求将被转发到该服务器。例如,当客户端将服务器IP地址写入浏览器或拥有多个域时,例如linuxhint.com、test1.linuxhint.com和test2.linuxhint.com,Nginx配置文件中并未提及所有这些.
如果你尚未将“ default_server ”参数添加到任何虚拟服务器,则第一个服务器将被视为默认服务器。但是,你可以按如下方式显式指定 default_server:
server {
listen 80 default_server;
#...
}
Nginx 配置会将此服务器视为其“ default_server ”:
你还可以添加另一个配置参数,例如服务器的名称和包含所有配置文件的目录:
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;
}
按“ CTRL+O ”将添加的行保存在“ /etc/nginx/nginx.conf ”文件中:
现在,通过执行带有“ -t ”选项的“ nginx ”命令来测试Nginx配置文件及其语法:
$ sudo nginx -t
测试成功后,重新启动Nginx服务,以便你的系统从添加的更改中生效:
$ sudo systemctl restart nginx
如何理解Nginx中的default_server?结论
Nginx中的default_server是什么?在Nginx配置文件中,server 块指定了一个虚拟服务器,用于处理特定类型的请求。设置各种服务器块后,管理员为连接选择块。此选择基于请求的 IP 地址、端口和域名。但是,你也可以指定default_server来处理传入的请求。在这篇文章中,我们介绍了Nginx default_server用法示例、解释了 default_server 以及如何设置虚拟服务器,包括 Nginx 中的默认服务器。