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请求

待补充。。。。。


时间: 2024-10-01 08:09:20

nginx处理web请求分析的相关文章

nginx学习(四):nginx处理web请求机制

worker抢占机制 如下图所示,如果有一个请求,各个work进程会进行争锁.谁抢到是谁的.需要注意Nginx 所有worker进程协同工作的关键(共享内存). [accept_mutex的介绍] 当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态:如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接,其它的Worker会重新进入

从Tomcat的处理web请求分析Java的内存模型

Tomcat作为一个java应用,同样是有主线程和子线程的.主线使用while(true)的方式一直循环,等待客户端来连接.一个客户端来了之后,就从线程池中拿一个线程来处理请求,如果没有配置线程池,就新生成一个线程. 然后给线程分配内存,下图详细的画出来整个流程是怎么进行的,内存是怎么分配,以及为什么单例是线程不安全,可以说一眼明了. 原文地址:https://www.cnblogs.com/mkl34367803/p/10703802.html

web日志分析脚本nginx&http

1,http日志分析 #!/bin/bash for i in [email protected];do         echo ===================== "$i" =============================>>weblog.txt         echo "IP data">>weblog.txt         awk '{print $1}' $i |wc -l>>weblog.txt

海量WEB日志分析

Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等. 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘.开源界

Hadoop应用开发实战案例 第2周 Web日志分析项目 张丹

课程内容 本文链接: 张丹博客 http://www.fens.me 用Maven构建Hadoop项目 http://blog.fens.me/hadoop-maven-eclipse/程序源代码下载:https://github.com/bsspirit/maven_hadoop_template/releases/tag/kpi_v1Flume部署:  http://blog.csdn.net/zhouleilei/article/details/8568147  周雷雷博客Chukwa部署

轻松使用Nginx搭建web服务器

如果读者以前做过web开发的话,就应该知道如何去搭建一个web服务器来跑你的web站点,在windows下你可能会选择去用IIS,十分的快捷,在linux下,你可能首先会想到apache,"一哥"( W3Techs网站数据的排名)啦 今天小编要介绍后起之秀nginx来实现web服务器.小编在前面的博客中也详细的聊过apache的使用,如今又来说nginx的使用,读者可能以后搭建web服务器的话就不知道选用哪一种,O(∩_∩)O~,别急,小编这就来给读者分析一下Nginx和Apache区

海量Web日志分析 用Hadoop提取KPI统计指标

前言 Web日志包括着站点最重要的信息,通过日志分析.我们能够知道站点的訪问量,哪个网页訪问人数最多,哪个网页最有价值等.一般中型的站点(10W的PV以上),每天会产生1G以上Web日志文件. 大型或超大型的站点,可能每小时就会产生10G的数据量. 对于日志的这样的规模的数据,用Hadoop进行日志分析,是最适合只是的了. 文件夹 Web日志分析概述 需求分析:KPI指标设计 算法模型:Hadoop并行算法 架构设计:日志KPI系统架构 程序开发1:用Maven构建Hadoop项目 程序开发2:

Hadoop 提取KPI 进行海量Web日志分析

Hadoop 提取KPI 进行海量Web日志分析 Web日志包含着网站最重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值等.一般中型的网站(10W的PV以上),每天会产生1G以上Web日志文件.大型或超大型的网站,可能每小时就会产生10G的数据量. Web日志分析概述 需求分析:KPI指标设计 算法模型:Hadoop并行算法 架构设计:日志KPI系统架构 程序开发:MapReduce程序实现 1. Web日志分析概述 Web日志由Web服务器产生,可能是

一次web请求过程

一次 Web 请求到底发生了什么 一.从输入一个网址开始 当我们在浏览器输入一个网址,然后按下回车,接下来浏览器显示了页面.网速好的话这之间可能就一秒,但在这一秒内到底发生了什么? 本文主要内容是试图记录一个完整 Web 请求的详细过程,从用户在浏览器中输入 URL 地址说起,然后浏览器如何找到服务器地址的过程,并发起请求:分析请求在达反向代理服务器内部处理过程:最后到请求在服务器端处理完成后,浏览器渲染响应页面过程. 大致过程如下: Web请求的工作原理可以简单地归纳为: 浏览器通过 DNS