详解HTTP配置(一):http配置项的使用场景



前言

在开发功能灵活的Nginx模块时,需要从配置文件中获取特定的信息,Nginx已经为用户提了强大的配置项解析机制,同时它还支持"-s reload"命令(在不重启服务的情况下使配置生效)。在这一系列文章中将讨论http配置项的一些特点,并全面讨论如何使用http配置项,包括使用Nginx预设的解析方法或者自定义配置项的解析方法。还会从HTTP框架的实现机制上解释http配置项的模型。


一、Nginx在处理配置项中需要面临的问题?

  • Nginx如何解析http配置块中的配置项?
  • 具体开发的HTTP模块是如何获取nginx.conf中的配置的?
  • 当一个配置同时出现在http块、server块、location块时,应当选择哪一个块下的配置?
  • 当多个不同URI表达式下的location都配置了mytest配置项,后面的参数却不同,Nginx如何处理?

二、Nginx配置的示例:

http {
	test_str main;

	server {
		listen 80;
		test_str server80;

		location /url1 {
			mytest;
			test_str loc1;
		}

		location /url2 {
			mytest;
			test_str loc2;
		}
	}

	server {
		listen 8080;
		test_str server8080;
		location /url3 {
			mytest;
			test_str loc3;
		}
	}
}
  • 在这段很短的配置中,mytest模块将会处理两个监听端口上建立的TCP连接,以及3种HTTP请求,请求的URL分别对应着/url1、/url2、/url3。
  • 假设mytest模块必须取出test_str配置项的参数,但在以上的例子中test_str出现了6个不同的参数值,那么在mytest模块中以那个值为准呢?
  • Nginx的设计非常灵活,它在每一个http块、server块或location块下,都生成独立的数据结构来存放配置项。因此,它允许当用户访问的请求不同时,配置项test_str具有不同的值。
  • 当请求时/url1时,test_str的值应当是location块下的loc1,还是这个location所属的server块下的server80,又或者是其所属http块下的值main,这个可以由mytest模块自己决定。

总结

本文大体介绍了下这一系列文章将要介绍的关于Nginx配置项的大致内容,并对http配置项的使用场景做了简单说明,结合一个具体例子说明Nginx配置项的逻辑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值