nginx处理web请求分析

简介:

一、基于域名的虚拟服务器

nginx首先确定使用哪一个server域来处理请求,下面的例子中有3个虚拟服务器监听*:80端口。


server {
listen 80;
server_name nginx.org www.nginx.org;
...
}
 
server {
listen 80;
server_name nginx.net www.nginx.net;
...
}
 
server {
listen 80;
server_name nginx.com www.nginx.com;
...

}

在上面的配置中,nignx会根据HTTP请求“Host”的值,确定具体哪一个server接收web请求。如果“Host”不存在或者Host的值无法匹配任何sever中的$server_name,nginx就会把web请求送到默认的server中。如果没有定义default_server,默认将 请求传递给第一个server。

默认server的配置方法如下:

server {
     listen       80  default_server;
     server_name  nginx.net  www.nginx.net;
     ...

}

二、处理基于IP和域名的虚拟主机

server {
     listen       192.168.1.1:80;
     server_name  nginx.org  www.nginx.org;
     ...
}
 
server {
     listen       192.168.1.1:80;
     server_name  nginx.net  www.nginx.net;
     ...
}
 
server {
     listen       192.168.1.2:80;
     server_name  nginx.com  www.nginx.com;
     ...
}

上面的配置中,nginx首先匹配IP地址和端口,然后在确定响应IP下的server_name,如果没有找到任何匹配的 server_name,ngixn将请求传递给默认server。例如,当nginx收到来自 192.168.1.1:80 端口的请求www.nginx.com(无法匹配192.168.1.1下的任何一个server_name),上例中没有定义默server,那么这个请求将被传递到第一个server中。

默认server的配置方法如下:

备注:nginx可以为不同的IP地址和端口定义多个默认server

eg:

server {
     listen        192.168.1.1:80;
     server_name   nginx.org  www.nginx.org;
     ...
}
 
server {
     listen        192.168.1.1:80  default_server;
     server_name   nginx.net  www.nginx.net;
     ...
}
 
server {
     listen        192.168.1.2:80  default_server;
     server_name   nginx.com  www.nginx.com;
     ...

}

三、如何处理PHP请求

待补充。。。。。




      本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1610734,如需转载请自行联系原作者



相关文章
|
26天前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
64 0
|
1月前
|
开发框架 缓存 .NET
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
|
5天前
|
SQL 存储 安全
Web安全-CSRF跨站请求伪造
Web安全-CSRF跨站请求伪造
20 5
|
1月前
|
人工智能 自然语言处理 搜索推荐
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
人工智能(AI)、Web 3.0和元宇宙作为当前科技领域的热门话题,它们之间存在着紧密的联系,并在各自领域内展现出广泛的应用和未来的发展趋势。以下是对这三者联系、应用及未来发展趋势的详细分析
46 2
【人工智能】人工智能(AI)、Web 3.0和元宇宙三者联系、应用及未来发展趋势的详细分析
|
13天前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
27天前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
27天前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
18天前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
29 0
|
18天前
|
开发者 缓存 数据库
【性能奇迹】Wicket应用的极速重生:揭秘那些让开发者心跳加速的调优秘技!
【8月更文挑战第31天】在软件开发中,性能优化是确保应用快速响应和高效运行的关键。本书《性能调优:Apache Wicket应用的速度提升秘籍》详细介绍了如何优化Apache Wicket应用,包括代码优化、资源管理、数据库查询优化、缓存策略及服务器配置等方面。通过减少不必要的组件渲染、优化SQL查询、使用缓存和调整服务器设置等方法,本书帮助开发者显著提升Wicket应用的性能,确保其在高并发和数据密集型场景下的稳定性和响应速度。
29 0
|
25天前
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)